Java程序设计-对象和类.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《Java程序设计-对象和类.ppt》由会员分享,可在线阅读,更多相关《Java程序设计-对象和类.ppt(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、JavaJava程序设计程序设计类和对象类和对象对象和类 学习目标学习目标:理解类和对象的概念及区别理解类和对象的概念及区别掌握类的定义以及类之间的关系描述掌握类的定义以及类之间的关系描述理解对象间的通信方式理解对象间的通信方式认识认识UMLUML基本图示含义,能够应用基本图示含义,能够应用UMLUML图示描述设计模型图示描述设计模型理解构造函数的作用理解构造函数的作用理解对象的生存周期理解对象的生存周期理解并掌握变量的作用域理解并掌握变量的作用域理解关键字理解关键字thisthis的用法的用法理解并掌握方法的声明和调用理解并掌握方法的声明和调用掌握基本的范型和枚举类型的机制掌握基本的范型和枚
2、举类型的机制理解包,掌握包的作用理解包,掌握包的作用4.1 4.1 什么是对象什么是对象 对象是什么?对象是什么?u对象就是组成现实世界的个体,它们之间存在对象就是组成现实世界的个体,它们之间存在着错综复杂的关系,正是这种关系的存在构成着错综复杂的关系,正是这种关系的存在构成了丰富多彩的世界。面向对象的分析就是要把了丰富多彩的世界。面向对象的分析就是要把这些对象以及对象之间的关系找出来。这些对象以及对象之间的关系找出来。现实生活中的对象现实生活中的对象u学生、课程、教师、选课单学生、课程、教师、选课单.u一个银行转帐监视系统中的帐户、交易、审查一个银行转帐监视系统中的帐户、交易、审查策略策略.
3、4.1.1 4.1.1 对象里面是什么对象里面是什么 对象三要素对象三要素u对象的名称(标识符)对象的名称(标识符)u表现对象状态的属性集表现对象状态的属性集u展示对象能力的行为集展示对象能力的行为集 4.1.1 4.1.1 对象里面是什么对象里面是什么(cont.)(cont.)4.1.2 4.1.2 对象的生存周期对象的生存周期对象是通过某个时刻某个客观存在的状态集来对象是通过某个时刻某个客观存在的状态集来表现的。世界上没有恒存的事物,所以对象也表现的。世界上没有恒存的事物,所以对象也具备从创建到消亡的生存周期。具备从创建到消亡的生存周期。一个对象只有被创建出来,才具备生命力,当一个对象只
4、有被创建出来,才具备生命力,当它达到某个条件,便归于消亡。它达到某个条件,便归于消亡。4.1.2 4.1.2 对象的生存周期对象的生存周期(cont.)(cont.)1.1.声明、创建对象声明、创建对象u 修饰符修饰符 类型类型 变量名变量名=初值初值,变量名变量名=初值初值uStudent student=Student student=nullnull;uStudent student=new Student(18052301);Student student=new Student(18052301);注:对象引用变量的声明和一般变量的声明没有任注:对象引用变量的声明和一般变量的声明没有
5、任何区别,可能出现的位置都是一样的。何区别,可能出现的位置都是一样的。4.1.2 4.1.2 对象的生存周期对象的生存周期(cont.)(cont.)2.2.使用对象使用对象u如:如:System.out.println(“Welcome!”);System.out.println(“Welcome!”);ustudent.showAcademicRecord();/student.showAcademicRecord();/这句代码意思是告这句代码意思是告诉对象诉对象studentstudent,执行,执行showAcademicRecord()showAcademicRecord(),列出
6、,列出studentstudent这个对象的学业成绩。这个对象的学业成绩。成员访问运算符(成员访问运算符(.)u可以访问那些访问修饰符非可以访问那些访问修饰符非privateprivate的成员的成员u对于那些访问修饰符为对于那些访问修饰符为privateprivate的属性,就不能直接访的属性,就不能直接访问信息隐藏问信息隐藏 u通过对象引用某个方法时,无论该方法是否需要传递参通过对象引用某个方法时,无论该方法是否需要传递参数,都要在调用方法名时在后面加上括号,表示方法调数,都要在调用方法名时在后面加上括号,表示方法调用用 4.1.2 4.1.2 对象的生存周期对象的生存周期(cont.)(
7、cont.)特殊的对象创建形式特殊的对象创建形式uint areaOfRectangle=new Rectangle(100,int areaOfRectangle=new Rectangle(100,50).area();50).area();u应该先执行应该先执行new Rectangle(100,50)new Rectangle(100,50),虚拟机,虚拟机会生成一个临时对象引用,然后调用该对象的会生成一个临时对象引用,然后调用该对象的areaarea()(),计算,计算areaarea,最终将,最终将areaarea的值赋值给整型变的值赋值给整型变量量areaOfRectanglea
8、reaOfRectangle。4.1.2 4.1.2 对象的生存周期对象的生存周期(cont.)(cont.)3 3 消亡消亡uobjectReference=objectReference=nullnull;垃圾回收垃圾回收uSystem.gc();System.gc();4.2 4.2 进一步了解对象进一步了解对象封装封装对象之间的关系消息、组合和聚合对象之间的关系消息、组合和聚合类类4.2 4.2 进一步了解对象进一步了解对象(cont.)(cont.)1.1.封装封装u对于软件世界,对象就是一个由属性集和方法集对于软件世界,对象就是一个由属性集和方法集构成的独立存在。在面向对象领域中把
9、这种构成构成的独立存在。在面向对象领域中把这种构成称为封装(称为封装(EncapsulationEncapsulation),封装技术带来的直),封装技术带来的直接优势就是信息隐藏接优势就是信息隐藏(Information-hiding)(Information-hiding)和模和模块化块化(Modularity),(Modularity),就是在进行设计时所追求的低就是在进行设计时所追求的低耦合、高内聚。耦合、高内聚。u对象封装通过访问控制修饰符的限定,决定了信对象封装通过访问控制修饰符的限定,决定了信息的批露范围,减少了由于直接访问而造成的不息的批露范围,减少了由于直接访问而造成的不当修
10、改和引用,而且对象本身是一个独立的实体,当修改和引用,而且对象本身是一个独立的实体,内部的运行过程外界无法直接控制,因此模块化内部的运行过程外界无法直接控制,因此模块化的程度进一步得到了提高。的程度进一步得到了提高。4.2 4.2 进一步了解对象进一步了解对象(cont.)(cont.)2 2 对象之间的关系对象之间的关系u对象间的关系包括在结构上的关联和聚合,在对象间的关系包括在结构上的关联和聚合,在协作上的消息传递机制协作上的消息传递机制关联关联u关联关系提供了给定类的对象之间的一个链接,关联关系提供了给定类的对象之间的一个链接,需要相互通信的对象可以使用这种链接。对象需要相互通信的对象可
11、以使用这种链接。对象之间的消息一般就是沿着关联关系发送的。之间的消息一般就是沿着关联关系发送的。4.2 4.2 进一步了解对象进一步了解对象(cont.)(cont.)一个关联的例子一个关联的例子4.2 4.2 进一步了解对象进一步了解对象(cont.)(cont.)聚合和组合聚合和组合 u聚合则表示把对象组合在一起,变成一个更大的对聚合则表示把对象组合在一起,变成一个更大的对象。这种包含关系就像象。这种包含关系就像整体和部分整体和部分关系。这种包含关系。这种包含关系可以是强的关系可以是强的(值聚合值聚合)或弱的或弱的(引用聚合引用聚合),在,在UMLUML中,值聚合称为组合,而引用聚合则称为
12、聚合。中,值聚合称为组合,而引用聚合则称为聚合。或者更简单的区别就是如果一个整体对象被删除,或者更简单的区别就是如果一个整体对象被删除,那么其部分对象是否也同时不再存在。那么其部分对象是否也同时不再存在。4.2 4.2 进一步了解对象进一步了解对象(cont.)(cont.)消息消息 u消息包含了接收对象名称、要求的服务消息包含了接收对象名称、要求的服务(方法名方法名)、传递的参数这些信息,消息的处理过程依赖于对象。传递的参数这些信息,消息的处理过程依赖于对象。练习题练习题定义合适的对象,描述他们的属性和功能定义合适的对象,描述他们的属性和功能u请你定义汽车对象,描述他们的属性和功能请你定义汽
13、车对象,描述他们的属性和功能u汽车和驾驶员的关系是什么?汽车和驾驶员的关系是什么?设想一下你的超市购物经历,如果让你描述那设想一下你的超市购物经历,如果让你描述那样的环境,你会用什么样的对象来概括,样的环境,你会用什么样的对象来概括,请请描述他们。描述他们。4.34.3类是对象的抽象类是对象的抽象 在在JavaJava语言中,要想表示对象,首先必须有对语言中,要想表示对象,首先必须有对象所属的类存在,无论这个类是象所属的类存在,无论这个类是J2SDKJ2SDK开发包开发包提供的、第三方提供的或者就是开发人员自己提供的、第三方提供的或者就是开发人员自己定义的。定义的。类封装了一组对象的公共属性和
14、方法类封装了一组对象的公共属性和方法4.3.14.3.1类的结构类的结构一个类的定义一个类的定义import java.util.*;import java.util.*;public class Studentpublic class Student /首先定义该类对象的属性首先定义该类对象的属性 private String id;private String id;private String name;private String name;/定义构造函数,一个类可以有多种构造对象的方法定义构造函数,一个类可以有多种构造对象的方法 public Student()public Stud
15、ent()./以下开始定义该类对象的方法以下开始定义该类对象的方法 public void addAcademicRecord(AcademicRecord ar)public void addAcademicRecord(AcademicRecord ar).4.3.14.3.1类的结构类的结构(cont.)(cont.)类的修饰符类的修饰符class class 类名类名 extends extends 父类名父类名 implements implements接口名接口名 修饰符修饰符 类型类型成员变量成员变量1;1;修饰符修饰符 类型类型成员变量成员变量2;2;staticstatic
16、/类初始化块类初始化块 构造函数构造函数1(1(参数参数1,1,参数参数2,)2,)函数体函数体;构造函数构造函数2(2(参数参数1,1,参数参数2,)2,)函数体函数体;修饰符修饰符 类型类型成员方法成员方法1(1(参数参数1,1,参数参数2,)throws 2,)throws 异常列表异常列表 方法体方法体;修饰符修饰符 类型类型成员方法成员方法2(2(参数参数1,1,参数参数2,)throws 2,)throws 异常列表异常列表 方法体方法体;4.3.14.3.1类的结构类的结构(cont.)(cont.)类的表示类的表示4.3.14.3.1类的结构类的结构(cont.)(cont.)
17、一些类声明的实例一些类声明的实例简单类简单类class Studentclass Student 可被任一其它类访问的类可被任一其它类访问的类-publicpublicpublic class Studentpublic class Student 一个不可被继承的最终类一个不可被继承的最终类-finalfinalpublic public finalfinal class Student class Student 一个抽象的类一个抽象的类-abstract-abstractpublic public abstractabstract class class StudentStudent 一
18、个继承了父类一个继承了父类StudentStudent的类的类-extendsextendspublic class Postgraduate public class Postgraduate extendsextends Student Student 一个继承了父类一个继承了父类StudentStudent,并且,并且实现了一个接口的类实现了一个接口的类public class Postgraduate public class Postgraduate extendsextends Student Student implementsimplements TakeTactics Tak
19、eTactics 4.3.34.3.3属性声明属性声明属性用于描述对象状态属性用于描述对象状态 u 访问权限修饰符访问权限修饰符 类型类型 变量名变量名;u 访问权限修饰符访问权限修饰符 类型类型 变量名变量名=初值初值;u 访问权限修饰符访问权限修饰符 类型类型 变量名变量名=初值初值,变量名变量名=初初值值;public class Studentpublic class Student String id;String id;private String name;private String name;public char gender=M;public char gender=M;
20、private List academicRecordList;private List academicRecordList;4.3.34.3.3属性声明属性声明(cont.)(cont.)元素元素必选必选作用作用public|private|Protected|default访问控制范围修饰符加上缺省没有任何访问控制范围访问控制范围修饰符加上缺省没有任何访问控制范围修饰符的五种情况,规定了成员变量的可见范围修饰符的五种情况,规定了成员变量的可见范围static声明该变量为类变量,见声明该变量为类变量,见4.4.3一节一节final声明该变量为最终变量,一旦赋值则不可修改声明该变量为最终变量
21、,一旦赋值则不可修改transient标记该变量不被串行化,既变量值不能用于基于标记该变量不被串行化,既变量值不能用于基于socket的网络访问的网络访问volatile一个变量被声明为一个变量被声明为 volatile,表明它可以被异步修改,表明它可以被异步修改,编程时需要注意编程时需要注意type 每个变量必须规定它的类型,可以是基本类型每个变量必须规定它的类型,可以是基本类型(int,float,double等等),也可以是引用类型,也可以是引用类型(某种类,如某种类,如Student,List等等)name变量的名称,要符合标识符的规定,在同一个作用域变量的名称,要符合标识符的规定,在
22、同一个作用域范围内名称不能重复。范围内名称不能重复。4.3.34.3.3属性声明属性声明(cont.)(cont.)1 1 类属性和对象属性类属性和对象属性uclass Calendarclass Calendaru static final int DAYS_OF_JANUARY=31;/static final int DAYS_OF_JANUARY=31;/一月的天数一月的天数u .u static final int DAYS_OF_DECEMBER=31;/static final int DAYS_OF_DECEMBER=31;/十二月的天数十二月的天数u uclass Bankc
23、lass Banku staticstatic final float ir_1=0.02;/final float ir_1=0.02;/一年期储蓄利率,一年期储蓄利率,这是类变量这是类变量u String address;/String address;/因为每个银行都有自己因为每个银行都有自己的所在地,故是对象变量的所在地,故是对象变量u .u 2 2 属性的访问属性的访问u通过成员运算符访问通过成员运算符访问u通过通过getXxxgetXxx()、()、setXxx()setXxx()方法访问方法访问示例:示例:uPublic class StudentPublic class Stu
24、dentu private String name;private String name;u public String getName()public String getName()u return this.name;return this.name;u u public void setName(String name)public void setName(String name)u u 4.3.34.3.3属性声明属性声明(cont.)(cont.)3.3.访问控制范围修饰符访问控制范围修饰符表表4-5 4-5 访问控制范围修饰符可见区域访问控制范围修饰符可见区域名称名称修饰符修
25、饰符类类子类子类包包所有类所有类公共public友好-保护protected私有private JavaJava名字空间及访问规则名字空间及访问规则public:public:任何其它类、对象只要可以看到这个类任何其它类、对象只要可以看到这个类的话,那么它就可以存取变量的数据,或使用方的话,那么它就可以存取变量的数据,或使用方法。法。protectedprotected:同一类,同一包可以使用。不同包的:同一类,同一包可以使用。不同包的类要使用,必须是该类的子类。类要使用,必须是该类的子类。privateprivate:不允许任何其他类存取和调用。:不允许任何其他类存取和调用。(default
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 对象
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内