JavaSE第三讲-面向对象三大特性-封装、继承、多态.ppt
-
资源ID:70799196
资源大小:260KB
全文页数:22页
- 资源格式: PPT
下载积分:11.9金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
JavaSE第三讲-面向对象三大特性-封装、继承、多态.ppt
Copyright 2008-2009 WitBJavaJava SE SE2Process and Portfolio Management 2005 IBM Corporation第三讲第三讲面向对象三大特性面向对象三大特性3Process and Portfolio Management 2005 IBM Corporation第一节第一节Encapsulation(封装)(封装)4Process and Portfolio Management 2005 IBM Corporation封装的三大好处封装的三大好处专业分工专业分工隐藏信息隐藏信息/实现细节实现细节访问权限控制访问权限控制5Process and Portfolio Management 2005 IBM CorporationPackage(包)(包)功能:功能:4将一组将一组java文件组织在一起文件组织在一起4强内聚强内聚4弱耦合弱耦合创建独一无二的包名创建独一无二的包名4Java 包的命名规则全部使用小写字母,包括中间的字也是如此包的命名规则全部使用小写字母,包括中间的字也是如此4按照惯例,按照惯例,package名称的第一部分是反顺序的类的创建者的名称的第一部分是反顺序的类的创建者的Internet 域名。域名。导入包(导入包(import)Demo:Data.java,TestImport.java6Process and Portfolio Management 2005 IBM CorporationAccess Control(访问控制)(访问控制)属性和方法的访问控制属性和方法的访问控制4public访问权限:任何地方的类都可以访问到。访问权限:任何地方的类都可以访问到。4protected访问权限:在同一个包中的类可以访问访问权限:在同一个包中的类可以访问;包外的子类可包外的子类可以继承以继承,但不能访问。但不能访问。4默认包访问权限:默认包访问权限:在同一个包中的类可以访问到。在同一个包中的类可以访问到。4private访问权限:只能在定义它的类里访问。访问权限:只能在定义它的类里访问。类(普通类,非内部类)的访问控制类(普通类,非内部类)的访问控制4public访问权限:访问权限:任何地方的类都可以访问到。任何地方的类都可以访问到。4默认包访问权限:在同一个包中的类可以访问到。默认包访问权限:在同一个包中的类可以访问到。7Process and Portfolio Management 2005 IBM CorporationAccess Control(访问控制)(访问控制)方法的访问控制方法的访问控制4public访问权限:访问权限:任何地方的类都可以访问到任何地方的类都可以访问到4protected访问权限:在同一个包中的类可以访问访问权限:在同一个包中的类可以访问;包外的子类可以包外的子类可以继承继承,但不能访问。但不能访问。4默认包访问权限:默认包访问权限:在同一个包中的类可以访问到在同一个包中的类可以访问到4private访问权限:访问权限:只能在定义它的类里访问只能在定义它的类里访问protected:Parent.java,Child.java private:IceCream.java,Sundae.java 8Process and Portfolio Management 2005 IBM Corporation第二节第二节Inheritance(继承)(继承)9Process and Portfolio Management 2005 IBM CorporationJava语言规范对继承的定义语言规范对继承的定义定义一个父类定义一个父类class 父类名父类名 定义一个子类定义一个子类class 子类名子类名 extends 父类名父类名 我们就说子类继承父类我们就说子类继承父类10Process and Portfolio Management 2005 IBM Corporation正确理解继承正确理解继承子类是父类更加详细的分类子类是父类更加详细的分类是一种一般化与特殊化的关系是一种一般化与特殊化的关系Java 的标准根源类的标准根源类java.lang.Object 进行继承进行继承继承的目的是实现代码复用继承的目的是实现代码复用Java只支持单根继承只支持单根继承只是采用它的形式并在其中添加新代码,对父类进行扩只是采用它的形式并在其中添加新代码,对父类进行扩展,表示展,表示“is-a”关系关系11Process and Portfolio Management 2005 IBM Corporation继承的含义继承的含义子类自动拥有父类的属性和行为(一般化的体现子类自动拥有父类的属性和行为(一般化的体现,目的就目的就是达到代码的复用)是达到代码的复用)子类可以定义自己特有的属性和行为(特殊化的体现,子类可以定义自己特有的属性和行为(特殊化的体现,目的就是达到功能的增加)目的就是达到功能的增加)子类可以把从父类继承下来的行为用自己的方式重新实子类可以把从父类继承下来的行为用自己的方式重新实现(通过方法重写来达到)现(通过方法重写来达到)12Process and Portfolio Management 2005 IBM Corporation理解继承时要注意以下几点理解继承时要注意以下几点不能简单地把继承理解成父子关系不能简单地把继承理解成父子关系设计的时候,如果需要把在父类中定义的属性和行为让设计的时候,如果需要把在父类中定义的属性和行为让子类能够继承,应该把访问权限适当公开子类能够继承,应该把访问权限适当公开继承的时候要注意构造方法的定义继承的时候要注意构造方法的定义13Process and Portfolio Management 2005 IBM CorporationOverride(方法重写、方法覆盖)(方法重写、方法覆盖)概念概念4子类里面如果有个某个方法的名字子类里面如果有个某个方法的名字,返回类型,返回类型,形式参数同父类形式参数同父类中的某个方法相同的时候中的某个方法相同的时候,我们称子类把父类的方法给重写了,我们称子类把父类的方法给重写了注意注意4在子类与父类之间表现出来(注意跟方法重载区别开来)在子类与父类之间表现出来(注意跟方法重载区别开来)4子类重写了父类的某个方法时子类重写了父类的某个方法时,不能降低访问权限,不能降低访问权限4子类的方法签名必须与父类的方法签名一样子类的方法签名必须与父类的方法签名一样Demo:TestEmp.java14Process and Portfolio Management 2005 IBM CorporationOverloading与与Override比较比较Overloading&Override4Overloading:方法名相同,参数列表不同:方法名相同,参数列表不同4Override:不同类中,方法名相同,参数列表也相同(方法签名相:不同类中,方法名相同,参数列表也相同(方法签名相同同。Override java.lang.Object.toString()方法方法Demo:Apple.java15Process and Portfolio Management 2005 IBM Corporationsuper关键字关键字概念概念4代表当前对象的父对象的引用代表当前对象的父对象的引用用法:用法:4直接父类对象的引用,访问父类的成员变量和方法直接父类对象的引用,访问父类的成员变量和方法4显式的调用父类的构造函数显式的调用父类的构造函数注意注意4由由JVM自己处理自己处理Demo:TestSuper.java16Process and Portfolio Management 2005 IBM Corporation实例的创建顺序实例的创建顺序第一步第一步:超类成员变量超类成员变量/超类初始化块(按排列顺序)超类初始化块(按排列顺序)第二步第二步:超类构造方法超类构造方法第三步第三步:子类成员变量子类成员变量/子类初始化块(按排列顺序)子类初始化块(按排列顺序)第四步第四步:子类构造方法子类构造方法注:按排列顺序是指哪个代码写在前面就先初始化谁注:按排列顺序是指哪个代码写在前面就先初始化谁17Process and Portfolio Management 2005 IBM CorporationUpcast(向上转型)和(向上转型)和Downcast(向下转(向下转型)型)upcast是由系统自动完成的,是安全的是由系统自动完成的,是安全的downcast是手工完成的(强制转型),不一定安全是手工完成的(强制转型),不一定安全RTTI(run-time type identification):运行期):运行期类型类型识别识别(使用(使用instanceof关键字消除关键字消除downcast的不安全的不安全性)性)Demo:Student.java18Process and Portfolio Management 2005 IBM Corporation第三节第三节Polymorphism(多态)(多态)19Process and Portfolio Management 2005 IBM Corporation对多态的正确理解对多态的正确理解相同的事物,调用相同的方法,参数也相同,但是表现出相同的事物,调用相同的方法,参数也相同,但是表现出来的行为却不同来的行为却不同多态通过分离多态通过分离“做什么做什么”和和“怎么做怎么做”多态能够改善代码的组织结构和可读性,使得程序有良好多态能够改善代码的组织结构和可读性,使得程序有良好的扩展性的扩展性多态也称为动态绑定(多态也称为动态绑定(dynamic binding)、后期绑定)、后期绑定(late binding)或运行时绑定()或运行时绑定(run-time binding)20Process and Portfolio Management 2005 IBM Corporation多态的三个含义多态的三个含义子类都能以父类的身份出现子类都能以父类的身份出现(里氏代换原则里氏代换原则)子类以父类的身份出现,但是做事情时,还是用自己的子类以父类的身份出现,但是做事情时,还是用自己的方式来实现方式来实现子类以父类的身份出现时,自己特有的属性和行为将不子类以父类的身份出现时,自己特有的属性和行为将不能使用能使用Demo:TestMan.java21Process and Portfolio Management 2005 IBM Corporation多态的运用多态的运用多态参数多态参数4多个方法的参数多个方法的参数,具有相同的父类,则以父类的名义来声明方法的具有相同的父类,则以父类的名义来声明方法的参数,由于子类都能以父类的身份出现,所以方法只要定义一次参数,由于子类都能以父类的身份出现,所以方法只要定义一次就可以适应各个子类了就可以适应各个子类了异类集合异类集合4多个变量多个变量,具有相同的父类,则以父类的名义来声明集合的类型,具有相同的父类,则以父类的名义来声明集合的类型,由于子类都能以父类的身份出现,所以集合中可以保存各个子类由于子类都能以父类的身份出现,所以集合中可以保存各个子类的实例的实例Demo:Music.java22Process and Portfolio Management 2005 IBM CorporationThank YouThank You!Q&A Time