java类和对象---修改_第1页
java类和对象---修改_第2页
java类和对象---修改_第3页
java类和对象---修改_第4页
java类和对象---修改_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

类和对象,本章目标,掌握类和对象的特征会创建和使用对象,程序设计的发展,非结构化阶段:20世纪五、六十年代,关注与算法实现有关的技术问题和效率问题上,很少关注程序设计的方法问题。使得软件的复用和维护都极为困难。结构化阶段(面向过程):20世纪七、八十年代将问题按功能分模块处理且每一模块的内部均是由顺序、选择和循环三种基本结构组成。面向对象阶段:出现于20世纪八十年代末,九十年代以来的软件设计主流。,万物皆对象,世界是由什么组成的?,分类是人们认识世界的一个很自然的过程,在日常生活中会不自觉地进行分类,6.1类的基本概念,类是对某一类事物的描述(共性),是抽象的、概念上的定义;而对象则是实际存在的属该类事物的具体的个体(个性),因而也称为实例(Instance)。问题:说一说教室里的类和对象,6.1类的基本概念,类的构成类由数据成员与函数成员封装而成。Java语言把数据成员称为域变量、属性、成员变量等;而把函数成员称为成员方法,简称为方法。举例:圆柱体类。,属性(静态特征),行为(动态特征),6.1类的基本概念,面向对象的基本特征抽象性封装性继承性多态性,6.2类的定义,原理:定义类(声明类)实际就是定义类的静态属性和动态属性(方法)。用户定义一个类实际上就是定义一个新的抽象数据类型。注意:使用类之前,必须先定义它,然后才可利用所定义的类来声明相应的变量,并创建对象。,6.2类的定义,定义类的语法结构类修饰符class类名称/声明成员变量修饰符数据类型变量名;/声明成员方法修饰符返回值类型方法名(参数表)类修饰符:public、abstract、final、缺省(P81)成员变量修饰符:public,private。,6.2类的定义,实例:圆柱体的定义classCylinder/定义圆柱体类Cylinderdoubleradius;/声明成员变量radiusintheight;/声明成员变量heightvoidarea()/定义成员方法area(),用来计算底面积System.out.println(圆柱底面积=+3.14*radius*radius);voidvolume()/定义成员方法volume(),用来计算体积System.out.println(圆柱体体积=+(3.14*radius*radius)*height);,小知识:类中定义的变量是成员变量,方法中定义的变量是局部变量成员变量与局部变量的区别:从语法形式上看,成员变量属于类,而局部变量是方法中定义的变量或方法的参数;成员变量可以被public、private和static等修饰,而局部变量则不能,二者都可以被final修饰。从变量在内存中的存储方式看,成员变量是对象的一部分,对象是存储在堆内存的,局部变量存于栈。从变量在内存中的生存时间上看,成员变量是对象的一部分,它随着对象的创建而存在;局部变量随着方法的调用而产生,随着方法调用的结束而消失。成员变量若没有被赋初值,则自动初始化默认为0(用final修饰的但没有被static修饰的成员变量必须显式赋值);局部变量不会自动赋值,必须显式赋值。,6.3对象的创建与使用,创建对象类名对象名=new类名();类名对象名;对象名=new类名();举例:创建圆柱体类Cylinder的对象Cylinderv;/声明指向对象的变量voluv=newCylinder();/利用new创建新的对象,并让变v指向它,6.3对象的创建与使用,使用对象引用对象成员,使用“.”进行以下操作引用类的属性:对象名.属性引用类的方法:对象名.方法名()举例:v.area(),6.3对象的创建与使用,注意事项当程序运行到调用方法语句时,程序会暂时跳到该方法中运行,等到该方法运行结束后,才又返回到主方法main()中继续运行。如果用new运算符创建两个对象v1和v2,若修改了其中一个对象的成员变量值,另一个对象的成员变量值将不受影响。,6.3.3方法的调用,在同一个类的定义里面,某一方法可以直接调用本类的其他方法。若要强调是“对象本身的成员”的话,则可以在成员名前加this关键字,即“this.成员名”。此时this即代表调用此成员的对象,例如:voidvolume()System.out.println(圆柱体体积=+(3.14*radius*radius)*height);可以写成:voidvolume()System.out.println(圆柱体体积=+(area()*height);,voidvolume()System.out.println(圆柱体体积=+(this.area()*height);,调用方法并传递参数时,参数其实就是方法的自变量,所以参数要放在方法的括号内来进行传递。括号内的参数可以是数值型、字符串型,甚至是对象。方法的参数属于局部变量。见教材例6.4若在通过方法调用,将外部传入的参数赋值给类的成员变量,方法的形式参数与类的成员变量同名时,则需用this来标识成员变量。(后面讲到构造方法再详细讲解),6.4.1以变量为参数调用方法,16,案例,编写学生类,输出学生相关信息;编写教员类,输出教员相关信息,publicclassStudentStringname;/姓名intage;/年龄StringclassNo;/班级Stringhobby;/爱好/输出信息方法publicvoidshow()System.out.println(name+n年龄:+age+n就读于:+classNo+n爱好:+hobby);,创建和使用对象示例,成员变量,成员方法,publicclassInitialStudentpublicstaticvoidmain(Stringargs)Studentstudent=newStudent();=张浩;student.age=10;student.classNo=“蓝点002班;student.hobby=篮球;studen

温馨提示

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

评论

0/150

提交评论