《【教学课件】第三章面向对象的核心特征.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第三章面向对象的核心特征.ppt(34页珍藏版)》请在三一办公上搜索。
1、第三章 面向对象的核心特征,时间安排:5课时,本章目标,理解对象理解类理解抽象和封装理解对象与类之间的关系理解继承、多态理解抽象类和最终类,2,3.1 类和对象,3,你看到什么?,4,对象,5,“对象是存在的具体实体,具有明确定义的状态和行为。”,类,是具有相同特性的对象的抽象描述是对象的模版不参与程序运行一种数据类型,6,封装性,7,“隐藏属性、方法或实现细节的过程称为封装。”,继承性,提供从父类创建新类的机制单重继承代码复用子类是父类,8,多态性,类中方法执行的多样性重载和覆盖(改写),9,定义类,类声明 成员变量;成员方法;修饰符 class 类 extends 父类 implement
2、s 接口列表,10,声明成员变量,同一般变量的声明修饰符 static final transient 类型 变量名;必须声明在类体中,且不在方法中。public class Date int year,month,day;,11,声明成员方法,修饰符 返回值类型 方法名(参数列表)throws 异常类列表 方法体 public class Date int year,month,day;void setDate(int y,int m,int d)/成员方法 year=y;month=m;day=d;,12,声明main方法,public static void main(String ar
3、gs)是程序执行的入口只有拥有该方法的类才可以被JVM执行。,13,演示示例3.1,使用对象,声明对象实例化对象对象=new 构造方法(参数)Date1 aday=new Date1();使用对象的成员对象.成员变量对象.成员方法(参数)aday.year=2006;/引用对象的成员变量aday.setDate(2006,1,28);/调用对象的方法abcd.equals(abc),14,对象的引用模型,15,对象的引用模型,16,方法调用时的参数传递原则基本数据类型参数传递值;引用数据类型参数传递引用。释放对象Java语言具有资源回收机制,能够跟踪存储单元的使用情况,自动收回不再被使用的资源
4、。【例3.2】引用数据类型作为方法的参数和返回值。,演示示例3.2,3.2 类的封装性,将数据和对数据的操作组合起来构成类类既要提供和外部联系的方法,又要尽量隐藏类的实现细节。,17,内容:,18,3.2.1 构造方法与析构方法3.2.2 方法的重载3.2.3 this引用和instanceof对象运算符3.2.4 类及其成员的访问权限3.2.5 实例成员与类成员,public class Date2 public Date2(int y,int m,int d)/声明构造方法/构造方法与类同名,构造方法返回该类的一个实例 year=y;month=m;day=d;,19,构造方法,特殊的成员
5、方法用于创建类的实例并初始化该实例对象声明构造方法与类名相同不需要写返回值类型说明不声明,则有默认无参的构造方法声明了带参的,则不会自动生成默认无参的只能通过new来使用,20,public void finalize()/析构方法 语句序列;,21,析构方法,用于释放类的实例并执行特定操作finalize无参无返回值不可重载可以使用 对象名.finalize()来调用一般不需要定义,22,Math.abs()方法声明有4种:int abs(int a)long abs(long a)float abs(float a)double abs(double a),23,方法重载,方法名相同但是参
6、数列表不同构造函数也可以重载Date2 aday1=new Date2();Date2 aday2=new Date2(2006,2,28);拷贝构造方法使用已经存在的对象创建新对象,实现对象的复制,24,25,Date2 aday3=new Date2(aday2);/由已知对象创建新对象,this引用,指代对象本身访问本类的成员this.成员变量this.成员方法(参数列表)避免同名的冲突调用本来重载的构造方法this(参数)必须是第一句,26,instanceof运算符,判断一个对象是否是指定的类,返回boolean类型Date d=new Date(2007,9,12);date in
7、stanceof Date,27,类中成员的访问权限,28,类的访问权限,类的访问权限:只有public和缺省两种。public class Date1/公有的类class Date1_ex/默认的类,29,例3.3 日期类的封装,30,设计并重载构造方法 成员变量设计为私有的访问权限,限制其他类对成员变量的访问成员方法设计为公有的访问权限,提供给其他类使用使用this引用增强程序的可维护性运行包含main()方法的类日期类的设计问题讨论,演示示例3.3,实例成员与类成员,实例成员变量与类成员变量两者声明时的差别public class Person1 String name;/姓名,实例成员
8、变量 int age;/年龄 static int count;/人数,类成员变量两者存储结构的差别两者引用方式的差别,31,实例成员变量与类成员变量的存储结构不同,32,实例成员方法与类成员方法,33,两者声明时的差别public static int howMany()/类成员方法 return count;/类成员方法只能访问类成员变量public static void main(String args)/main方法也是类成员方法两者方法体中语句的差别在类成员方法体中,不能使用this引用。两者调用方式的差别Person1.howMany();/通过类名调用类成员方法p1.howMany();/通过对象调用类成员方法,【例3.4】实例成员与类成员,34,类成员的作用和调用set方法可以重载,get方法不能重载方法体中的局部变量不能使用修饰符调用对象的析构方法后,不能再引用对象,演示示例3.4,