Java面向对象特性课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Java面向对象特性课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 面向 对象 特性 课件
- 资源描述:
-
1、第四章第四章 Java面向对象特性面向对象特性对象对象与类与类对象生命周期对象生命周期类的创建类的创建重载重载子类子类1对象的基本概念对象的基本概念面向对象程序语言三个关键特点:面向对象程序语言三个关键特点:封装封装(Encapsulation)多态多态(Polymorphism)继承继承(Inheritance)2基本数据类型和聚集类型的变量与一些操作基本数据类型和聚集类型的变量与一些操作(如(如+,-)之间不需特殊的联系。)之间不需特殊的联系。在面向对象语言中,在数据类型的声明与操作在面向对象语言中,在数据类型的声明与操作 这些数据的代码声明之间建立紧密联系,这种这些数据的代码声明之间建立
2、紧密联系,这种 联系通常描述为一种抽象数据类型。联系通常描述为一种抽象数据类型。在在Java中,抽象数据类型的概念用类来实现。中,抽象数据类型的概念用类来实现。抽象数据类型抽象数据类型3类和对象类和对象类是特定类型对象的定义,包括:对象包含的类是特定类型对象的定义,包括:对象包含的 数据,对象的创建及对象对自身数据操作的方法。数据,对象的创建及对象对自身数据操作的方法。类是一个模板。类是一个模板。对象是在其类模型基础上构造出的,是具体的对象是在其类模型基础上构造出的,是具体的 实例。实例。4类和对象举例类和对象举例类定义:类定义:Class EmpInfoString name;String
3、designation;String department;void print()System.out.println(name+“is”+designation+“at”+department);对象的生成与使用:对象的生成与使用:EmpInfo employee=new EmpInfo();employee.name=“Robert Javaman”;employee.designation=“Manager”;employee.department=“Coffee shop”;employee.print();.5对象生命周期对象生命周期 创建对象创建对象 使用对象使用对象 清除不用的
4、对象清除不用的对象6创建对象创建对象例:例:Point origin_one;origin_one=new Point(23,94);Rectangle rect_one=new Rectangle(origin_one,100,200);Rectangle rect_two=new Rectangle(50,100);创建对象的三个步骤:创建对象的三个步骤:声明声明(Declaration)实例化(实例化(Instantiation)初始化(初始化(Initialization)7对象实例化过程对象实例化过程构造与初始化对象的过程(调用构造与初始化对象的过程(调用new Xxxx():开辟内
5、存空间(变量、方法体代码)及类成员开辟内存空间(变量、方法体代码)及类成员 变量变量的初始化的初始化:数值型:数值型:0;布尔型:布尔型:false;引用型:引用型:null;字符串型:字符串型:null;显式初始化:执行类成员声明时带有的简单显式初始化:执行类成员声明时带有的简单 赋值赋值表达式。表达式。public class Initializedprivate int x=5;private String name=“Fred”;执行构造函数。执行构造函数。8对象的回收对象的回收垃圾收集机制(垃圾收集机制(garbage collection):):Java运行环境当确定运行环境当确定
6、某个对象不再被使用时,将其删除。某个对象不再被使用时,将其删除。一个对象在没有引用指向它时,可作为垃圾收集。一个对象在没有引用指向它时,可作为垃圾收集。垃圾搜集器:垃圾搜集器:Java运行环境中的垃圾搜集器周期性地释放运行环境中的垃圾搜集器周期性地释放不用对象占用的空间。不用对象占用的空间。9垃圾收集机制垃圾收集机制C+:A*a=new A();A*b=a;A*c=a;Java:A a=new A();A b=a;A c=a;a b c b c(指针悬空)a b c b c/a 使用完,将其删除使用完,将其删除delete a;/a 使用完,将其删除使用完,将其删除 a=null;10类的类的
7、创建创建z 11构造方法定义:构造方法定义:public 类名(参数)类名(参数)注意:注意:方法名必须与类名相同。方法名必须与类名相同。不能带返回类型。不能带返回类型。类的类的构造函数构造函数12如果在类定义中无构造函数,如果在类定义中无构造函数,Java在编译时在编译时可缺省加入构造方法。如可缺省加入构造方法。如 public Employee();一旦在类中有一个自己声明的构造函数,则缺省一旦在类中有一个自己声明的构造函数,则缺省的构造函数将不被加到源程序中。的构造函数将不被加到源程序中。缺省构造函数缺省构造函数13类成员方法定义类成员方法定义一般格式:一般格式:()throws 方法是
8、传值的,方法调用不会改变参数的值。方法是传值的,方法调用不会改变参数的值。当对象作为参数时,参数的值是该对象的引用,当对象作为参数时,参数的值是该对象的引用,这时对象的内容可以在方法中改变,但是对象的这时对象的内容可以在方法中改变,但是对象的 引用不会改变。引用不会改变。14举例举例Public class PassTestfloat ptValue;public void changeInt(int value)value=55;public void changeStr(String value)value=new String(different“);public void change
9、ObjValue(PassTest ref)ref.ptValue=99.0f;public static void main(String args )String str;int val;PassTest pt=new PassTest();val=11;pt.changeInt(val);System.out.println(“Int value is:”+val);str=new String(“hello”);pt.changeStr(str);System.out.println(“str value is:”+str);pt.ptvalue=101.0f;pt.changeObj
10、Value(pt);System.out.println(“pt value is:”+pt.ptValue);结果:结果:Int Value is:11Str Value is:hellopt value is:99.0f15数据隐藏与封装数据隐藏与封装数据隐藏:使用数据隐藏:使用private定义的成员变量,只能定义的成员变量,只能 在成员方法中使用,其它方法中禁止使用。在成员方法中使用,其它方法中禁止使用。优点:优点:保证对象中数据的一致性。保证对象中数据的一致性。封装:基本数据和对数据进行的操作方法的结合。封装:基本数据和对数据进行的操作方法的结合。优点:优点:隐藏类中具体实现的细节。
11、隐藏类中具体实现的细节。强迫程序员使用统一的接口访问数据。强迫程序员使用统一的接口访问数据。使代码可维护性好。使代码可维护性好。16数据隐藏与封装举例数据隐藏与封装举例Class Dateprivate int day,month,year;void setDate(int a,int b,int c)day=a;month=b;year=c;Date d1;d1.new Date();d1.setDate(30,9,2001);.d1.day=30;(错误!)错误!)17“this“引用引用关键字关键字this 用来指向当前对象本身。用来指向当前对象本身。例:例:class Date pri
12、vate int day,month,year;public Date getTommorrow()this.day+;18重载(重载(Overloading)含义:在同一个类中一个方法名被用来定义多个含义:在同一个类中一个方法名被用来定义多个 方法。方法。classScreen public void print(int i)public void print(float i)public void print(String str)重载必须遵守原则:重载必须遵守原则:参数表必须不同,以此区分不同方法体。参数表必须不同,以此区分不同方法体。返回类型、修饰符可相同或不相同。返回类型、修饰符可相
13、同或不相同。19激活重载的构造函数激活重载的构造函数在一个构造函数中可以利用另一个构造函数。在一个构造函数中可以利用另一个构造函数。class Employeeprivate String name;private int salary;public Employee(String n,int s)name=n;salary=s;public Employee(String n)this(n,0);public Employee()this(“Unknown”);20子类子类子类表示类之间一种子类表示类之间一种“属于属于”(is a)关系。关系。例:例:public class Employe
14、e String name;Date hireDate;Date dateofBirth;String jobTitle;int grade;public class Manager String name;Date hireDate;Date dateofBirth;String jobTitle;int grade;String department;Employee subordinates;21 Java中用中用 extends 关键字定义子类。关键字定义子类。Extends 关键字关键字public class Employee String name;Date hireDate;D
展开阅读全文