第六章java程序设计语言课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第六章java程序设计语言课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六 java 程序设计语言 课件
- 资源描述:
-
1、1第六章第六章 面向对象(下)面向对象(下)2主要内容l this与与superl 构造方法的多态与继承构造方法的多态与继承l 抽象类与接口抽象类与接口l 引用引用l 类的其他相关内容类的其他相关内容36.1 this与super 6.1.1 this的用法的用法this指代指代当前对象当前对象 this()this.成员变量成员变量 this.成员方法成员方法this当参数传递给其他方法当参数传递给其他方法【例【例6.1】46.1.2 supersuper引用当前对象继承自父类的成员引用当前对象继承自父类的成员 super.数据成员数据成员 super.成员方法成员方法 super()5 c
2、lass Person int age;int height;void eat()void sleep()Person()class Student extends Person int score;Student()void study()this可引可引用的范围用的范围Person()Student score study()Student()age height eat()sleep()super可引可引用的范围用的范围6运行结果如下:运行结果如下:x=4 y=1class name:Ax=5 y=1class name:AAI am an AAz=10 x=6 super.x=5 y=
3、1 super.y=1【例【例6.2】Ax=4;y=1Void Printme()AAx=4;y=1xVoid Printme()int z=super.x+6;super.x=5super.Printme();System.out.println(I am an +this.getClass().getName();。x=4 在 子在 子类 对 象 中类 对 象 中隐藏隐藏此处调用的是父类代此处调用的是父类代码及对应的父类对象码及对应的父类对象中的属性成员中的属性成员。76.2 构造函数的多态和继承n一个类可以定义多个构造函数,构造函数之间用this()相互调用n构造函数不能被继承,可以在子
4、类构造函数中用super()调用父类构造函数【例【例6.3】【例【例6.4】86.3 抽象类抽象类6.3.1 抽象类的定义抽象类的定义用用abstract修饰的类称为抽象类,修饰的类称为抽象类,用用abstract修饰的成员修饰的成员方法方法称为抽象方法。称为抽象方法。对于抽象方法,在抽象类中只指定方法名对于抽象方法,在抽象类中只指定方法名及类型,而不写实现代码。及类型,而不写实现代码。9public abstract class 类名类名 extends 父类名列表父类名列表 /数据成员声明数据成员声明/抽象方法抽象方法声明声明 publicabstract返回值返回值 方法名方法名(参数参
5、数列表列表)throw 异常列表异常列表 【例【例6.5】10 抽象类中可以有抽象类中可以有零个零个或或多个多个抽象方法,也抽象方法,也可以包含可以包含非抽象非抽象方法。方法。只要有一个抽象方法,类前就必须有只要有一个抽象方法,类前就必须有abstract修饰。若没有抽象方法,类前也可修饰。若没有抽象方法,类前也可有有abstract修饰。修饰。11 抽象类不能创建对象,创建对象由具抽象类不能创建对象,创建对象由具体子类来实现,但可以有体子类来实现,但可以有声明声明,声明能,声明能引用所有具体子类的对象。引用所有具体子类的对象。12 抽象类必定要派生子类,若派生的子类是抽象类必定要派生子类,若
6、派生的子类是具体类,则具体子类中必须实现抽象类中定具体类,则具体子类中必须实现抽象类中定义的义的所有抽象方法所有抽象方法(覆盖);若子类还是抽(覆盖);若子类还是抽象类,父类中已有的象类,父类中已有的abstract方法,则子类方法,则子类中就不能再有。中就不能再有。13 在抽象类中,非抽象方法可以调用抽象在抽象类中,非抽象方法可以调用抽象方法。方法。abstract不能与不能与final并列修饰同一个类;并列修饰同一个类;abstract 不能与不能与private,static,final或或 native并列修饰同一个方法;并列修饰同一个方法;abstract 类类中不能有中不能有pri
7、vate成员成员 146.3.2 抽象类的产生过程抽象类形成的思维过程:客观事物抽象类形成的思维过程:客观事物对象对象类类抽象类。抽象类。如:矩形、三角形、圆形类的属性和方法如图如:矩形、三角形、圆形类的属性和方法如图 :Protected int x,y;Protected int width,height;Public double getPerimeter()Public double getArea()矩矩形形Protected int x,y;Protected double radius;Public double getPerimeter()Public double getAr
8、ea()圆圆(x,y)(x,y)widthheightrxyzwidthheight(x,y)15对以上三类进行抽象对以上三类进行抽象 :Public double getPerimeter()Public double getArea()矩矩形形Public double getPerimeter()Public double getArea()圆圆Public double getPerimeter()Public double getArea()三三角角形形图64protected int x,y,k;protected double m;abstract public double g
9、etPerimeter()abstract public double getArea()s sh ha ap pe es s166.3.3 抽象类在继承方面的应用【例【例6.6】n简化子类定义n明晰类的层次关系17 public double x,y;public double k,m;public double getPerimeter()public double getArea()T Tr ri ia an ng gl le e public double x,y;public double k,m;public double getPerimeter()public double g
10、etArea()C Ci ir rc cl le et tr ri i6.3.4 引用具体子类对象【例【例6.7】186.3.5 抽象类设计注意事项n抽取同类对象的共同行为n包含对象的本质n尽可能简单196.4 接口(接口(interface)接口的两种含义:l可以被引用调用的方法(public方法或同包中的protected方法或默认方法);l另一种是同“类”概念地位相当的专有概念interface,interface是方法说明的集合。20 interface声明格式 public interface 接口名extends 父接口名列表 /静态常量数据成员声明 publicstaticfin
11、al 域类型 域名=常量值 /抽象方法声明 publicabstract返回值 方法名(参数列表)throw 异常列表 21 定义接口要注意几点接口定义用关键字interface,而不是用class,interface前的修饰符要么为public,要么为缺省。接口具有继承性,可通过extends关键字声明接口的父接口。22 接 口 定 义 的 数 据 成 员 全 是接 口 定 义 的 数 据 成 员 全 是 f i n a l static(静态常量静态常量)。即使没有修饰符,其。即使没有修饰符,其效果也等效,访问级别要么为效果也等效,访问级别要么为public,要么为要么为缺省缺省。23 接
12、口中没有接口中没有构造构造方法;所有成员方法都是方法;所有成员方法都是抽象方法抽象方法(与抽象类有所不同)。即使没(与抽象类有所不同)。即使没有修饰符,其效果完全等效,访问级别要有修饰符,其效果完全等效,访问级别要么为么为public,要么为,要么为缺省缺省。注:方法前不。注:方法前不能修饰为能修饰为final。246.4.2 接口的角色 接口扮演将实现者和使用者有机联系到一起的角色。256.4.3 接口实现与使用给接口中的方法定义具体的操作就是接口的实现在类的声明中用implements子句来表示一个类实现了某个接口。26 接口实现要注意几点一个类可以实现多个接口,在implements后用
展开阅读全文