- 1、本文档共45页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 面向对象编程(二)
回顾: 创建一个类 Circle,其中有: 一个成员变量 r(半径) 一个方法 clength,能求圆周长 一个方法 carea,能求圆面积 并建立该类的一个对象:一个半径为5的圆,并输出该圆的周长和面积。 收到作业中解决方法: public class Circle { int r=5; double PI=3.14; public void getClength(){ System.out.println(“圆的面积是:+PI*r*r); } public void getArea(){ System.out.println(圆的周长是:+2*PI*r); } public static void main(String[] args) { Circle cc=new Circle(); cc.getClength(); cc.getArea(); } } 继承 生活中的继承 生活中,继承的例子随处可见 生活中的继承 子类具有父类的一般特性(包括属性和行为),以及自身特殊的特性 为什么需要继承? 开发教师类,其中教师分为Java教师以及.NET教师,各自的要求如下: Java教师 属性:姓名、所属教研室 方法:授课(步骤:打开Eclipse、实施理论课授课)、自我介绍 .NET教师 属性:姓名、所属教研室 方法:授课(步骤:打开Visual studio 2005、实施理论课授课)、自我介绍 为什么需要继承? 请问:以下这个解决方案中存在着什么问题? 如何改进?有没有可能建立继承关系,让子类自动继承父类的属性和方法? 为什么需要继承 4-4 如何实现继承? 在Java语言中,用extends关键字来表示一个类继承了另一个类,例如: 如何实现继承 子类自动继承父类的属性和方法,子类中可以定义特定的属性和方法 如何实现继承? 子类的构造方法中,通过super关键字调用父类的构造方法 一切类的“祖先”——Object 在Java 中,所有的Java类都直接或间接地继承了java.lang.Object类 小结 1 请编码实现动物世界的继承关系: 动物(Animal)具有行为:吃(eat)、睡觉(sleep) 动物包括:兔子(Rabbit),老虎(Tiger) 这些动物吃的行为各不相同(兔子吃草,老虎吃肉);但睡觉的行为是一致的。 请通过继承实现以上需求,并编写测试类AnimalTest进行测试。 为什么需要多态 5-1 在教师类的基础上,开发一个类代表总部,负责对各教师进行评估,评估内容包括: 1、教师的自我介绍 2、教师的授课 为什么需要多态 5-2 第一种解决方案 为什么需要多态 5-3 现在,改进教师类,增加一种新类型:DBTeacher,该类型的教师专门负责教授数据库,要求如下: 属性:姓名、所属中心 方法:授课(启动Sql Server、实施理论课授课)、自我介绍 同时,总部也负责对这类教师进行评估 为什么需要多态 5-4 如果在第一种解决方案的基础上去解决,我们需要如下两个步骤: 建立DBTeacher类 修改总部类,增加方法:judge(DBTeacher t) 为什么需要多态 5-5 第二种解决方案——使用多态 什么是多态 简单来说,多态是具有表现多种形态的能力的特征 同一个实现接口,使用不同的实例而执行不同操作 如何实现多态 1、子类重写父类的方法 2、编写方法时,使用父类定义的方法 3、运行时,根据实际创建的对象类型动态决定使用哪个方法 小结 2 请编码实现如下需求: 乐器(Instrument)分为:钢琴(Piano)、小提琴(Violin) 各种乐器的弹奏( play )方法各不相同。 编写一个测试类InstrumentTest,要求: 编写方法testPlay,对各种乐器进行弹奏测试。要依据乐器的不同,进行相应的弹奏。 在main方法中进行测试 总结 2-1 给定如下Java代码,编译运行后,输出结果是什么? 总结 2-2 给定如下Java代码,编译运行后,输出结果是什么? 生活中的方法重载 方法重载的代码示例 1 方法重载并不陌生 java.io.PrintStream类的println方法能够打印数据并换行,根据数据类型的不同,有多种实现方式 方法重载的代码示例 2 java.lang.Math类的max()方法能够从两个数字中取出最大值,它有多种实现方式 运行时,Java虚拟机先判断给定参数的类型,然后决定到底执行哪个max()方法 构造方法重载 2-1 构造方法重载是方法重载的典型示例 构造方法重载 2-2 通过调用不同的构造方法来表达
文档评论(0)