




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章 类、类的继承和接口,本章目标,理解面向对象程序设计的思想 掌握与面向对象的封装性相关的基本概念 掌握与面向对象的继承性相关的基本概 掌握与面向对象的多态性相关的基本概念,第3章 类、类的继承和接口,3.1 类 3.2 包的创建和使用、源文件结构 3.3 类的继承和多态 3.4 接口和接口的实现 3.5 内部类和匿名内部类,3.1 类,3.1.1 类的修饰符 3.1.2 类的成员 3.1.3 域、域的访问控制修饰符和其他修饰符 3.1.4 静态方法、抽象方法和最终方法 3.1.5 构造方法 3.1.6 关键字this 3.1.7 抽象和封装 3.1.8 对象的清除,3.1 类,3.1.1 类的修饰符 修饰符1 class 类名 extends 父类名 implements 接口名列表 修饰符2 类型名 域名; public 类名(参数列表) /; 修饰符3 返回值类型 方法名(参数列表) throws 异常 /; 修饰符1:public、abstract|final 修饰符2:public|protected|private、static、fianl、transient、volatile 修饰符3:public|protected|private、static、fianl|abstract、synchronized 、native,3.1 类,3.1.2 类的成员 域:也称属性、字段、成员变量。 方法 内部类,3.1 类,3.1.3 域、域的访问控制修饰符和其他修饰符 域的初始化 声明其他类对象作为一个类的域 域的访问控制 封装和公开 静态域 最终域 域的声明格式,3.1 类,3.1.3 域、域的访问控制修饰符和其他修饰符 域的初始化 All reference typenull byte、short、int0 long0L float0.0F double0.0D charu0000 booleanfalse; 例3.1(Page94):TestBirthdy.java,3.1 类,3.1.3 域、域的访问控制修饰符和其他修饰符 声明其他类对象作为一个类的域 例3.2(Page96):TestPerson.java与Person.java,3.1 类,3.1.3 域、域的访问控制修饰符和其他修饰符 域的访问控制 封装和公开,3.1 类,3.1.3 域、域的访问控制修饰符和其他修饰符 域的访问控制 封装和公开 为了实现良好的封装性,通常将类的域声明为private,再通过public的方法来对这个域进行访问。 例3.3(Page98),3.1 类,3.1.3 域、域的访问控制修饰符和其他修饰符 静态域 所有对象共享的域,也称类变量(区别于实体变量),用static修饰,可通过对象名或类名访问。 例3.4(Page100):TestCar.java与Car.java,不能把任何方法体中的变量(局部变量)声明为静态的!,注意,3.1 类,3.1.3 域、域的访问控制修饰符和其他修饰符 最终域 public static final 类型 常量名 = 初始值; 最终域的值一旦确定就不能重新赋值! 一般通过类名引用最终域。 域的声明格式,3.1 类,3.1.4 静态方法、抽象方法和最终方法 方法的定义格式 方法的访问控制修饰符 静态方法 最终方法 抽象方法,3.1 类,3.1.4 静态方法、抽象方法和最终方法 静态方法 有时希望不创建对象就能调用某个方法 调用静态方法的格式: 类名.静态方法 或者 对象名.静态方法 例3.5(Page103):UseStaticVar.java,3.1 类,3.1.4 静态方法、抽象方法和最终方法 静态方法 在静态方法里只能直接调用同类中其他的静态成员,而不能直接调用同类中的非静态成员。 静态方法不能以任何方式引用this和super关键字。,注意,3.1 类,3.1.4 静态方法、抽象方法和最终方法 最终方法 用关键字final修饰的方法,不能被重写/覆盖(Page104)。 抽象方法 用关键字abstract修饰的方法,只有方法头,没有方法体。,左、右花括号+左、右花括号之间的部分,均用分号代替!,3.1 类,3.1.5 构造方法 构造方法的规则:Page105 构造方法的重载 例3.6(Page106):TestBirthday.java与Birthday.java,3.1 类,3.1.6 关键字this 含义及使用:Page107 例3.6(Page107):TestBirthday.java与Birthday.java,3.1 类,3.1.7 抽象和封装 3.1.8 对象的清除 垃圾回收器 System.gc();,3.2 包的创建和使用、源文件结构,3.2.1 包 3.2.2 创建包和使用包中的类 3.2.3 源文件结构和程序说明文档的生成,3.2 包的创建和使用、源文件结构,3.2.1 包 Java通过引入包(package)机制,提供类的多层类命名空间,来解决类的命名冲突问题。 完整的类名是:包名.类名。 类及类成员的访问:Page110。,3.2 包的创建和使用、源文件结构,3.2.2 创建包和使用包中的类 package语句 package 包名.下一级包名.; javac命令中的-d选项 import语句 import 包名.类名; import 包名.*;,3.2 包的创建和使用、源文件结构,3.2.3 源文件结构和程序说明文档的生成,Page 113,3.3 类的继承和多态,3.3.1 类的包含关系和继承关系 3.3.2 类成员的继承和重新定义 3.3.3 子类对父类构造方法的调用关键字super 3.3.4 父类和子类对象的转换 3.3.5 抽象类和最终类,3.3 类的继承和多态,3.3.1 类的包含关系和继承关系,汽车,发动机,车轮,方向盘,Has-A (包含)关系,红星苹果,红富士苹果,苹果,梨,水果,Is-A (继承)关系,3.3 类的继承和多态,3.3.2 类成员的继承和重新定义 例3.10(P113)、例3.11(P119)与例3.12(P120) 定义子类的格式:extends关键字 类成员的继承 子类拥有父类所有非私有变量(/域)和方法的使用权。 子类添加成员,3.3 类的继承和多态,3.3.2 类成员的继承和重新定义 重新定义从父类继承来的成员 方法覆盖的规则 变量隐藏:可通过”super.变量名”引用父类同名变量。 方法覆盖 定义:子类有与父类同名的方法。 规则:Page118 子类的方法名、返回值类型、参数列表与父类一样 访问控制级别:子类不能比父类更严格(宽松性:publicprotected默认private) 异常:子类不多于父类,3.3 类的继承和多态,3.3.3 子类对父类构造方法的调用关键字super(例3.13、例3.14) super.变量名 引用被子类隐藏的变量 super.方法名 调用被子类覆盖的父类的方法 super(参数列表) 子类构造方法调用父类构造方法 super(参数列表)必须是子类构造方法中的第一个语句! 不能与this(参数列表)同时出现在构造方法中!,注意,3.3 类的继承和多态,3.3.4 父类和子类对象的转换,gouGou,Is yanJing an Animal?,Is yanJing a Dog?,Animal yanJing = new Dog();,Dog gouGou = (Dog)yanJing;,yanJing,父类,子类,3.3 类的继承和多态,3.3.4 父类和子类对象的转换,Is yanJing an Animal?,Is yanJing a Dog?,Animal yanJing = new Cat();,Dog gouGou = (Dog)yanJing;,yanJing,3.3 类的继承和多态,3.3.4 父类和子类对象的转换,gouGou,Animal yanJing = new Dog();,if(yanJing instanceof Dog) Dog gouGou = (Dog)yanJing;,yanJing,Is yanJing a Dog?,instanceof,yanJing.shout();,shout(),3.3 类的继承和多态,3.3.5 抽象类和最终类 抽象类 由abstract修饰的类,只能做父类,不能实例化。 最终类 由final修饰的类,不能做父类。,3.4 接口和接口的实现,3.4.1 接口概述 3.4.2 自定义接口和实现接口 3.4.3 Java类库中的接口实现举例,3.4 接口和接口的实现,3.4.2 自定义接口和实现接口 自定义接口 public interface 接口名称 extends 父接口名列表 /静态常量 public static final 数据类型 变量名=常量值; /抽象方法 public abstract 返回值类型 方法名(参数列表); ,3.4 接口和接口的实现,3.4.2 自定义接口和实现接口 实现接口 修饰符 class 类名 extends 父类名 implements 接口A,接口B, 类的成员变量和成员方法; 为接口A中的所有方法编写方法体,实现接口A; 为接口B中的所有方法编写方法体,实现接口B; ,3.4 接口和接口的实现,3.4.2 自定义接口和实现接口 接口实现举例 Assembler.java,思考:如果SoundCard类中具
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 碱石合成醇工艺考核试卷及答案
- 液晶显示器件阵列制造工专业知识考核试卷及答案
- 医疗器械装配工适应性考核试卷及答案
- 锅炉除灰、脱硫、脱硝设备检修工基础考核试卷及答案
- 辽宁省沈阳市2025-2026学年九年级上册第一次月考数学模拟试卷练习卷含解析
- 银行技术岗测试题及答案
- 卫生法规及多领域知识点执业考试模拟试卷
- 银行智力测试题目及答案
- 银行远程营销面试题及答案
- 银行应届生试题及答案
- 剪式升降台的驱动机构设计
- 25道中国民航航空医生岗位常见面试问题含HR常问问题考察点及参考回答
- SF095广州市社会保险费补缴申请表
- 醉酒驾驶行政复议委托书范本
- 讲故事比赛细则、评分表
- 2023新能源风电场智慧工地建设方案
- 直线的点斜式方程省赛一等奖
- -HTML5移动前端开发基础与实战(第2版)(微课版)-PPT 模块1
- 四川省2019年 (2017级)普通高中学业水平考试通用技术试卷
- GB/T 19227-2008煤中氮的测定方法
- 《鱼》 一种提高士气和改善业绩的奇妙方法
评论
0/150
提交评论