电子教案第03章面向对象的核心特性

上传人:E**** 文档编号:94398738 上传时间:2019-08-06 格式:PPT 页数:43 大小:312.50KB
返回 下载 相关 举报
电子教案第03章面向对象的核心特性_第1页
第1页 / 共43页
电子教案第03章面向对象的核心特性_第2页
第2页 / 共43页
电子教案第03章面向对象的核心特性_第3页
第3页 / 共43页
电子教案第03章面向对象的核心特性_第4页
第4页 / 共43页
电子教案第03章面向对象的核心特性_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《电子教案第03章面向对象的核心特性》由会员分享,可在线阅读,更多相关《电子教案第03章面向对象的核心特性(43页珍藏版)》请在金锄头文库上搜索。

1、Java2程序设计实用教程 第2版,叶核亚,Java2程序设计实用教程 (第2版),第1章 Java概述 第2章 Java语言基础 第3章 面向对象的核心特性 第4章 接口、内部类和包 第5章 异常处理 第6章 图形用户界面 第7章 多线程 第8章 Applet应用程序 第9章 输入/输出流和文件操作 第10章 网络通信 第11章 数据库应用 第12章 JSP 第13章 综合应用设计,Java2程序设计实用教程(第2版),第3章 面向对象的核心特性,3.1 类和对象 3.2 类的封装性 3.3 类的继承性 3.4 类的多态性 3.5 抽象类和最终类 3.6 递归方法,Java2程序设计实用教程

2、(第2版),3.1 类和对象,3.1.1 面向对象基本概念 3.1.2 定义类 3.1.3 使用对象,Java2程序设计实用教程(第2版),3.1.1 面向对象基本概念,类与对象 类(class)是既包括数据又包括作用于数据的一组操作的封装体。 对象(object)是类的实例(instance)。 类的封装性、继承性和多态性 类的封装性 类的继承性 类的多态性,Java2程序设计实用教程(第2版),3.1.2 定义类,声明类 类声明 成员变量的声明; 成员方法的声明及实现; 声明成员变量 修饰符 class 类 extends 父类 implements 接口列表 public class D

3、ate1 /类声明 int year, month, day; /声明成员变量 ,Java2程序设计实用教程(第2版),3.1.2 定义类,声明成员方法 方法声明语法 修饰符 返回值类型 方法(参数列表) throws 异常类 语句序列; return 返回值; 方法体中的局部变量 方法体中用return语句返回值 声明main方法 public static void main(String args) 【例3.1】 声明日期类。,Java2程序设计实用教程(第2版),3.1.3 使用对象,声明对象 类 对象 对象实例化 对象 = new 类的构造方法(参数列表) Date1 aday=ne

4、w Date1(); 引用对象的成员变量和调用对象方法 对象.成员变量 对象.成员方法(参数列表) aday.year = 2006; /引用对象的成员变量 aday.setDate(2006,1,28); /调用对象的方法 “abcd“.equals(“abc“),Java2程序设计实用教程(第2版),3.1.3 使用对象,对象的引用模型,Java2程序设计实用教程(第2版),3.1.3 使用对象,方法调用时的参数传递原则 基本数据类型参数传递值; 引用数据类型参数传递引用。 释放对象 Java语言具有资源回收机制,能够跟踪存储单元的使用情况,自动收回不再被使用的资源。 【例3.2】 引用数

5、据类型作为方法的参数和返回值。,Java2程序设计实用教程(第2版),3.2 类的封装性,3.2.1 构造方法与析构方法 3.2.2 方法的重载 3.2.3 this引用和instanceof对象运算符 3.2.4 类及其成员的访问权限 3.2.5 实例成员与类成员,Java2程序设计实用教程(第2版),3.2.1 构造方法与析构方法,构造方法 声明构造方法 public class Date2 public Date2(int y, int m, int d) /声明构造方法 /构造方法与类同名,构造方法返回该类的一个实例 year = y; month = m; day = d; Date

6、2 aday = new Date2(2006,1,28); 关于构造方法声明和使用的几点说明 构造方法与成员方法的不同之处,Java2程序设计实用教程(第2版),2. 析构方法,public void finalize() /析构方法 语句序列; ,Java2程序设计实用教程(第2版),3.2.2 方法的重载,重载的含义 Math.abs()方法声明有4种: int abs(int a) long abs(long a) float abs(float a) double abs(double a) 成员方法重载 构造方法重载 Date2 aday1 = new Date2(); Date2

7、 aday2 = new Date2(2006,2,28);,Java2程序设计实用教程(第2版),图3.2 使用拷贝构造方法复制对象,Date2 aday3 = new Date2(aday2); /由已知对象创建新对象,Java2程序设计实用教程(第2版),3.2.3 this引用和instanceof对象运算符,this引用 指代对象本身 this 访问本类的成员变量和成员方法 this.成员变量 this.成员方法(参数列表) 调用本类重载的构造方法 this(参数列表) instanceof对象运算符 aday instanceof Date2,Java2程序设计实用教程(第2版),

8、3.2.4 类及其成员的访问权限,类中成员的访问权限 类的访问权限:只有public和缺省两种 。 public class Date1 /公有的类 class Date1_ex /默认的类,Java2程序设计实用教程(第2版),【例3.3】 日期类的封装。,设计并重载构造方法 成员变量设计为私有的访问权限,限制其他类对成员变量的访问 成员方法设计为公有的访问权限,提供给其他类使用 使用this引用增强程序的可维护性 运行包含main()方法的类 日期类的设计问题讨论,Java2程序设计实用教程(第2版),3.2.5 实例成员与类成员,实例成员变量与类成员变量 两者声明时的差别 public

9、class Person1 String name; /姓名,实例成员变量 int age; /年龄 static int count; /人数,类成员变量 两者存储结构的差别 两者引用方式的差别,Java2程序设计实用教程(第2版),图3.4 实例成员变量与类成员变量的存储结构不同,Java2程序设计实用教程(第2版),2. 实例成员方法与类成员方法,两者声明时的差别 public static int howMany() /类成员方法 return count; /类成员方法只能访问类成员变量 public static void main(String args)/main方法也是类成员

10、方法 两者方法体中语句的差别 在类成员方法体中,不能使用this引用。 两者调用方式的差别 Person1.howMany(); /通过类名调用类成员方法 p1.howMany(); /通过对象调用类成员方法,Java2程序设计实用教程(第2版),【例3.4】 实例成员与类成员。,类成员的作用和调用 set方法可以重载,get方法不能重载 方法体中的局部变量不能使用修饰符 调用对象的析构方法后,不能再引用对象,Java2程序设计实用教程(第2版),3.3 类的继承性,3.3.1 什么是继承 3.3.2 定义继承的类 3.3.3 super引用,Java2程序设计实用教程(第2版),3.3.1

11、什么是继承,继承的概念 由一个已有的类定义一个新类,称为新类继承已有的类。 继承的作用 继承原则 子类继承父类的成员变量,包括实例成员变量和类成员变量。 子类继承父类除构造方法以外的成员方法,包括实例成员方法和类成员方法。 子类不能继承父类的构造方法。因为父类构造方法创建的是父类对象,子类必须声明自己的构造方法,创建子类自己的对象。 子类能够继承父类的析构方法。 子类不能删除父类成员。 子类可以增加自己的成员变量和成员方法。 子类可以重定义父类成员。,Java2程序设计实用教程(第2版),图3.5 类的继承性,Java2程序设计实用教程(第2版),3.3.2 定义继承的类,声明继承的类 修饰符

12、 class 类 extends 父类 implements 接口列表 public class Student1 extends Person1 String speciality; /专业 ,Java2程序设计实用教程(第2版),3.3.2 定义继承的类,Java中的类都是Object的子类 public class Person1 extends Object 类的赋值相容性 子类对象即是父类对象。 子类对象对父类成员的访问权限 子类对父类的私有成员(private)没有访问权限; 子类对父类的公有成员(public)和保护成员(protected)具有访问权限。 子类对父类中缺省权限成

13、员的访问分两种情况,对同一包中父类的缺省权限成员具有访问权限,而对不同包中父类的缺省权限成员则没有访问权限。,Java2程序设计实用教程(第2版),3.3.2 定义继承的类,子类重定义从父类继承来的成员 子类隐藏父类成员变量 子类覆盖父类成员方法 子类继承并重载父类成员方法,Java2程序设计实用教程(第2版),3.3.3 super引用,调用父类的构造方法 super(参数列表) 引用父类同名成员 子类隐藏父类成员变量 super.成员变量 子类覆盖父类成员方法 super.成员方法(参数列表),Java2程序设计实用教程(第2版),【例3.5】 类的继承性。,子类继承父类成员 子类对象即是

14、父类对象 类之间继承关系的设计原则 本例存在问题,Java2程序设计实用教程(第2版),3.4 类的多态性,3.4.1 什么是多态 3.4.2 运行时多态性,Java2程序设计实用教程(第2版),3.4.1 什么是多态,方法的重载 重载(overload)是指同一个类中的多个方法可以同名但参数列表必须不同。 方法的覆盖 覆盖(override)是指子类声明并实现父类中的同名方法并且参数列表也完全相同。,Java2程序设计实用教程(第2版),【例3.6】 子类重定义父类成员。,两个类声明的成员,Java2程序设计实用教程(第2版),【例3.6】 子类重定义父类成员。,子类隐藏父类成员变量 子类覆

15、盖父类成员方法 子类继承并重载父类成员方法,Java2程序设计实用教程(第2版),3.4.2 运行时多态性,编译时多态性 Person1 p1 = new Person1(“李小明“,21); /对象获得本类的实例,对象与其获得的实例类型一致 Student1 s1 = new Student2(“王大伟“,19); p1.print(); /编译时多态性,执行Person1类的方法 s1.print(); /编译时多态性,执行Student2类覆盖的方法 运行时多态性 Person1 p2 = new Student2(); /p2获得子类对象,对象与其获得的实例类型不一致 p2.print(); /运行时多态,执行Student2类覆盖的方法,Java2程序设计实用教程(第2版),【例3.7】 运行时多态性的应用。,对象数组及计数 图3.7 对象与对象数组 运行时多态性体现 System.out.println(pgroupi.toString();,Java2程序设计实用教程(第2版),3.5 抽象类和最终类,抽象类 声明抽象类与抽象方法 pub

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号