05 深入Java面向对象电子课件 Java程序设计案例教程.pptx
《05 深入Java面向对象电子课件 Java程序设计案例教程.pptx》由会员分享,可在线阅读,更多相关《05 深入Java面向对象电子课件 Java程序设计案例教程.pptx(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、模块5深入Java面向对象学习目标01了解Java面向对象程序设计的思想原则。02掌握类的结构、定义及对象的创建和使用。03掌握成员变量(实例变量、静态变量)和成员常量(实例常量、静态常量)的定义和使用。05理解访问控制、数据安全性、包及封装的概念。04掌握成员方法(实例方法、静态方法)的定义和使用,以及成员方法重载的概念。06掌握构造方法(隐式、显式)的定义和使用,以及构造方法重载的概念。07掌握this关键字的使用。08了解基本数据类型变量和引用数据类型变量在数值传递上的区别。技能目标1.能够在MyEclipse IDE中定义子类继承父类。2.能够在子类的定义中使用super关键字及重写父
2、类的成员方法。3.能够使用instanceof运算符判断对象类型。4.能够在MyEclipse IDE中定义抽象类及定义子类继承抽象父类。5.能够在MyEclipse IDE中定义接口及定义类实现接口。5.1 回顾与思考在模块4我们以Circle类为例,从类的定义入手,详细分析了类的构成和使用。如果现在面临一个任务:设计一个扇形类Sector,提供计算扇形的弧长、周长和面积的方法。我们该如何解决这个问题?一个办法是完整地定义扇形类Sector,包括所有必需的成员变量及常量、构造方法、成员方法等。这个办法有个缺点,就是必须重新开始一个类的定义。能否在已完成工作的基础上(如利用Circle类),适
3、当添加或改动部分代码,完成扇形类Sector的定义?答案是可行的。但是在编写过程中需要遵循另一个重要的面向对象设计原则:继承。5.2 继承继承可以充分利用现有的代码,解决编程过程中代码冗余的问题,它是实现代码重用的有效手段之一。被继承的类被称为父类或超类(superclass),由继承而得到的类被称为子类(subclass)。继承增强了代码的重用性,增强了软件的扩展性。Java中只允许单一继承,不允许多重继承,即每个类只能有一个父类。5.2 继承Java中通过关键字extends实现子类对父类的继承。定义子类的基本语法格式如下。修饰符 class 子类名 extends 父类名 /类体 除了增
4、加“extends 父类名”以外,其余含义和类的定义相似,可参阅4.2节。5.2 继承5.2.1 继承的实现【例5-1】定义类Sector,代表扇形,继承Circle类,提供计算扇形的弧长、周长和面积的方法。首先在ch5.example包中定义父类Circle。在MyEclipse IDE中,右击myPro项目下src目录的ch5.example目录,在弹出的快捷菜单中执行“New”“Class”命令,在弹出的“New Java Class”窗口中输入类名Circle,如图5-1所示。图5-1 创建父类Circle图5-1 创建父类Circle5.2 继承5.2.1 继承的实现【例5-1】单击
5、Finish按钮,完成父类Circle的创建。文件名为Circle.java,其代码如下。见书本P100-101。然后定义子类Sector。可以手动输入子类Sector的代码,也可以采用相对规范的操作方式创建Sector类,步骤如下:右击myPro项目下src目录的ch5.example目录,在弹出的快捷菜单中执行“New”“Class”命令,在弹出的“New Java Class”窗口中输入类名Sector,如图5-2所示。再 单 击 Superclass文 本 框 右 边 的 Browse按 钮,打 开“Superclass Selection”窗口,如图5-3所示。5.2 继承5.2.1
6、 继承的实现【例5-1】图5-2 创建子类Sector图5-3 选择父类Circle5.2 继承5.2.1 继承的实现【例5-1】图5-4 完成子类Sector的创建在“Choose a type”文本框中输入Cir,在“Matching items”列表框中会显示相应路径下的Circle类,选择要继承的父类Circle,单击OK按钮,返回“New Java Class”窗口。此时,在Superclass文本框中出现了所要继承的父类Circle,如图5-4所示。5.2 继承5.2.1 继承的实现【例5-1】单击Finish按钮,完成子类Sector的创建。文件名为Sector.java,其代码
7、如下。见书本P103-104。最后,编写一个测试类对子类Sector的功能进行检验。文件名为Example5_1.java,其代码如下。5.2 继承5.2.1 继承的实现【例5-1】运行结果如下。5.2 继承5.2.2 super关键字使用super关键字引用父类构造方法的基本语法格式如下。super(参数列表);其中,参数列表是可选项,参数间用“,”分隔。使用super关键字引用父类成员变(常)量的基本语法格式如下。super.成员变(常)量名;使用super关键字引用父类成员方法的基本语法格式如下。super.方法名(参数列表);其中,参数列表是可选项,参数间用“,”分隔。5.2 继承5.
8、2.3 构造方法继承子类中的每一个构造方法都必须继承父类中的某个且仅一个构造方法。如果子类要继承父类中的某个显式构造方法,在子类构造方法内的第一行语句必须是“super(父类构造方法参数列表);”。例如,Sector类的构造方法public Sector(double radius,double cAngle)中的第一行语句“super(radius);”表示继承父类Circle中的构造方法public Circle(double radius)。5.2 继承5.2.4 调用父类成员方法和成员变(常)量在子类的构造方法和成员方法中均可以直接通过方法名调用父类成员方法。但是,如果父类的成员方法在
9、子类中已被重写,就不能用子类对象直接调用父类中的成员方法了,而只能通过语句“super.方法名(参数列表);”来调用父类中的成员方法。例如,Sector类的calArc()成员方法中的calPerimeter()方法来自父类Circle,而不是在Sector类中已重写过的calPerimeter()方法,所以用super关键字来表示区别。5.2 继承5.2.5 成员方法重写可以明显地看出,从父类Circle中直接继承过来的成员方法calPerimeter()和calArea()在子类Sector中已经不能履行其行为职责了。可以在子类中重新定义从父类中继承过来的成员方法,从而在子类中具有自己的行
10、为特征,以符合需求。这种成员方法重新定义称为成员方法重写(覆盖)。5.2 继承5.2.5 成员方法重写重写成员方法需要注意以下几个方面。(3)(1)(2)在子类中被重写的成员方法必须与父类中对应的成员方法有相同的方法名、参数列表、返回值类型和static修饰。只能扩大不能缩小重写后的成员方法的可见性(可见性从小到大为private、default、protected和public)。不能在子类中重写父类中用final关键字修饰的成员方法。用final关键字修饰的成员方法被称为最终方法。最终类中的方法都自动成为最终方法。5.3 多态5.3.1 认识多态在4.4节中提及的成员方法重载体现了同一个类
11、中方法的多态性。同一个类中所声明的多个重载方法为相似的功能提供了多种实现。Java编译系统根据参数的数量、类型和次序调用匹配的重载方法。这种多态可称为编译时多态。在继承过程中,子类继承了父类的所有成员。在确保可见性的前提下,凡父类对象能调用的成员,子类对象也能调用。子类还能重写父类中的成员方法。5.3 多态5.3.2 多态应用父类对象和子类对象之间的引用可以相互转换。父类对象引用了子类对象被称为向上转型。子类对象引用了父类对象被称为向下转型。5.3 多态5.3.2 多态应用向上转型的基本语法格式如下。1.向上转型父类型 引用变量名=new 子类构造方法名(实际参数列表);【例5-2】Circl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 05 深入Java面向对象电子课件 Java程序设计案例教程 深入 Java 面向 对象 电子 课件 程序设计 案例 教程
限制150内