参考一java语言基础与面向对象编程实践01-使用编写程序案例_第1页
参考一java语言基础与面向对象编程实践01-使用编写程序案例_第2页
参考一java语言基础与面向对象编程实践01-使用编写程序案例_第3页
参考一java语言基础与面向对象编程实践01-使用编写程序案例_第4页
参考一java语言基础与面向对象编程实践01-使用编写程序案例_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

oo1JavaJava言。为什么要用面向对象的思想设计程序呢?什么是面向对象?面向对象有哪些特征?如何使用面向对象程序设计语言开发程序?这些问题是本章要给读者介绍的内容。始兴起的软件设计开发方法,现在主流的应用软件 IT行业不断发面向过程与面向对 (2类和对象的概 JavaJava开发人员要学会用面向对象的思想考虑问题和编Java基础课的蒋老师是类具有的属性包括、、、年级等,方法包括听课、写作业等,如图6.2所示。图6.1对象和类的关 图6.2学生 JavaJavaAPI5章学习的Java类。Java类的定 publicpublicclass类名属性1类型:1名属性2类型:2名…方法1方法2定…}部、方法外部定义的变量称为成员变量,这里类的属性就是类的成员变量,这两个概念是相publicpublicclass{intstuAge;int intpublicvoid{+"}publicString{"(int时间hour点,stuName+"}}Java类的创建和使 类类名new类名new关键字,后面要跟着类名。StudentStudentwangYun=newwangYun.stuName=" wangYun.stuName=" wangYun.stuAge=22; =wangYun.stuGrade= //1代表男,2代表//该方法返回一个String类型的字符 ,来测试Student类的创建和使用,具体代码如下所示。publicpublicclass{publicstaticvoidmain(String[]{StudentwangYun=newwangYun.stuName=" wangYun.stuAge=22; //1代表男,2代表wangYun.stuGrade );//}}6.3创建和使用Student类是测试类,测试类中包含main方法,提供程序运行的。在main方法内,创建StudentJavaJavaJava2个classJavaJavapublic修饰,Javapublic类的类名命名,具体代码如下。publicpublicclass{publicstaticvoidmain(String[]{StudentwangYun=newwangYun.stuName=" wangYun.stuAge=22; //1代表男,2代表wangYun.stuGrade );//}}}class{intstuAge;//不能使用publicintstu publicvoidlearn(){+"}publicString{"}(int时间hour点,stuName+"}publicpublicclass{publicstaticvoidmain(String[]{StudentwangYun=newStudent();为:为:数值为:"+wangYun.stuName=" wangYun.stuAge=22; =wangYun.stuGrade=4;//1代表男,2代表为:"+wangYun.stuName);为:数值为:"+}}6.4未赋值对象属为数据类型,其初始默认值为null,如果该属性是int型,其初始默认值为0。Java类的简单运 一个Student类的对象wangYunwangYun对象的属性赋值并调用6.5所示。6.1老师基本信息

6.5老师专课教计算机应Java基5软件工前端技6.2学生基本信息年男4女3南天男3女46.6所示。6.6Java类的简单运publicclassTestStuTea{staticScannerinput=newScanner(System.in);publicstaticvoidmain(String[]args){TeacherteanewTeacher[2];//创建2的数组tea,用于存2个老师对Studentstunew //创建4的数组stu,用于存4个学生对for(inti=0;i<{"+()+"tea[i //createTeacher方法创建第i+1个老师对象并赋}for(intj=0;j<{"+()+"stu[j //createStudent方法创建第j+1个学生对象并赋}for(intj=0;j<stu.length;j++){}for(intj=0;j<stu.length;j++){StringtempStr }for(intj=0;j<{ }}publicstaticTeacher{Teachertea=newTeacher(); tea.teaName=input.next();tea.teaSpecialty=inputnext();tea.teaCourse=inputnext();tea.teaYears=inputnextInt();return}publicstaticStudent{Studentstu=newStudent(); stu.stuName=input.next(); stu.stuAge=inputnextInt(); 数值(1代表男、2代表女):"); =input.nextInt();stu.stuGrade=inputnextInt();return}}class //不能使用public修{String String String int publicvoidteach(){System.out.println(teaName正在辛苦讲:teaCourse+"}publicvoidcheck (Studentstu){System.out.println("讲授:teaCourse+"课程的老师:teaName+"已经批改完毕stu.stuName+"的作业}}class //不能使用public修{String int int int publicvoidlearn(){+"}publicStringdo (inthour){ 时间:"+hour+"点,"+stuName+"正在写作业}}封 还是使用学生的案例,例如要求一旦对学生对象的赋值之后就不能修改,但在6.2.2节的TestStudent.java程序中,完全可以在赋值以后,通过“学生对象名.stu=2”语句,把采用封装的形式用privat(私有的关键字去修饰stu变量其含义是为把stu变量封装到类的内部,只有在类的内部才可以stu变量,从而保证了这个变量不能被其他类的对象修改。这样的做法只起到了隐藏的作用,要想更好地使用这个变量,则应该提供一个对外的publi(公有的方法其他对象可以通过这个方法这个私有的变量。getterStudent类,其代码如下。publicpublicclass{privateStringstuName;privateintstuAge;privateint privateintpublicString//这里的this表示本对return}//返回这个类的私有属性 publicvoidsetStuName(Stringname){this.stuName=name;}publicintgetStuAge(){}}}时间hour点,stuName+"(intpublicString{"}return } publicvoidsetStu }publicintgetStuGrade(){ returnthis.stuGrade;}publicvoidsetStuGrade(intgrade){this.stuGrade=}publicvoidlearn(){+"}publicint publicvoidsetStuAge(intage){this.stuAge=age;}publicpublicclass{publicstaticvoidmain(String[]{StudentwangYun=newStudent();wangYun.stuName=" wangYun.stuAge=22;//不能给私有属性stuName赋//不能给私有属性stuAge赋 = //不能给私有属性 wangYun.stuGrade //不能给私有属性stuGrade赋 //可以调用公有的学生听课的learn()方法StringrstString=wangYun.do }}publicpublicclass{publicstaticvoidmain(String[]{StudentwangYun=newStudent(); //调用公有方法给stuName赋//调用公有方法给stuAge赋 //调用公有方法给 //调用公有方法给stuGrade赋//调用公有的学生听课的learn()方 }} 时间:20 时间:15 “1“2,构造方法解决问 publicpublicclass{privateStringstuName;privateintstuAge;privateintstu privateintstuGrade;publicStudent(Stringname,intage,int ,intgrade){this.stuName=name;this.stuAge=age; this.stuGrade=grade;}//省略了Student类中的其他方}publicpublicclass{publicstaticvoidmain(String[]{//使用带参的构造方法,创建wangYun学生类对象并初始化对StudentwangYun=newStudent("StringrstString=}}6.7使用构造方法创建并初始化对构造方法的使 法返回被初始化对象的,为什么不写返回值类型呢?例如Student类构造方法为什么不写成publicStudentStudent(参数列表{…}呢?Java设计人员把这种方法名(类名)和返回类型的类名相同的方法看成一个普通方构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象。publicpublicclass{privateStringstuName;privateintstuAge;privateintstu privateintstuGrade;publicStudent(Stringname,intage,int ,intgrade){this.stuName=name;this.stuAge=age; this.stuGrade=grade;}publicStudent(Stringname,intage,int this.stuName=name;this.stuAge=age; this.stuGrade=4;} publicStudent(Stringname,int this.stuName=name;this.stuAge=22; this.stuGrade=4;}//省略了Student}publicpublicclass{publicstaticvoidmain(String[]{StudentwangYun=newStudent(" StudentliuJT=newStudent(" StudentnanTHnewStudent("南天华StringrstString=wangYun.doSystem.out.println(liuJT.getStuName正在读大学liuJT.getStuGrade年级}}6.8使用类的多个构造方时间:20初始化 {{}publicpublicclass{privateStringstuName="";privateintstuAge=-1;privateintstu =-1;privateintstuGrade=-1;{this.stuName=" this.stuAge= =this.stuGrade=}publicStudent(){} ,intthis.stuName=name;this.stuAge=age; this.stuGrade=grade;}//省略了Student}publicpublicclass{publicstaticvoidmain(String[]{Studenttemp=newSystem.out.println(temp.getStuName正在读大学temp.getStuGrade年级StudentwangYun=newStudent(" System.out.println(wangYun.getStuName正在读大学wangYun.getStuGrade年级}}6.9对象初始化过对象初始化内存结 代码Studenttemp=newStudent(" 6.10对象初始化内存结构

6.11对象初始化内存结构

6.12对象初始化内存结构6.13对象初始化内存结构 重载的定 在这种情况下,该方法就被称为重载(overload3种情形。重载方法的使 publicpublicclass{privateStringstuName;privateintstuAge;privateintstu privateintstuGrade;publicStudent(Stringname,intage,int this.stuName=name;this.stuAge=age; this.stuGrade=grade;}publi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论