ch06面向对象编程_1in1.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《ch06面向对象编程_1in1.pdf》由会员分享,可在线阅读,更多相关《ch06面向对象编程_1in1.pdf(32页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、2010-9-20第六章第六章第六章第六章面向对象编程面向对象编程面向对象编程面向对象编程JavaJavaJavaJava程序设计程序设计程序设计程序设计http:/路路路路强强强强PagePage2 2/32/32C Chapterhapter6 6 面向对象编程面向对象编程面向对象编程面向对象编程Lu Qiang,2010Hefei University of Technology,School of Computer and Information本章学习提示本章学习提示 本章学习本章学习Java语言中面向对象编程的具体实施过程。语言中面向对象编程的具体实施过程。封装与继承封装与继承 覆
2、盖与重载覆盖与重载 多态多态 类的强制转换类的强制转换PagePage3 3/32/32C Chapterhapter6 6 面向对象编程面向对象编程面向对象编程面向对象编程Lu Qiang,2010Hefei University of Technology,School of Computer and Information目目目目录录录录封装与继承封装与继承1多态机制多态机制32覆盖与重载覆盖与重载类的转换类的转换4Lu Qiang,2010Hefei University of Technology,School of Computer and InformationPagePage4
3、 4/32/32C Chapterhapter6 6 面向对象编程面向对象编程面向对象编程面向对象编程封装封装 面向对象的程序设计 以类作为基本处理单元,对象是类的实例。面向对象程序设计的重要特征是具有封装性、多态性和继承性。所谓封装封装封装封装表现在以下几个方面1.在类的定义中设置对对象中的成员变量和方法进行访问的权限。2.提供一个统一供其它类引用的方法。3.其它对象不能直接修改本对象所拥有的属性和方法。对象变量的四种访问权限 public protected private public protected private 默认默认默认默认PagePage5 5/32/32C Chapte
4、rhapter6 6 面向对象编程面向对象编程面向对象编程面向对象编程Lu Qiang,2010Hefei University of Technology,School of Computer and InformationCode-封装封装1./引用私有方法和修改私有成员变量引用私有方法和修改私有成员变量2.class def06_013.private int x,y,z=0;4.private void method1()5.int x=3,y=4,z;6.z=x*y;7.System.out.println(z=+z);8.public void show()9.System.out
5、.println(z=+z);10.11.class ch06_0112.public static void main(String args)13.def06_01 ss=new def06_01();14.ss.method1();/调用私有方法出错15.ss.z=12;/修改私有变量出错16.ss.show();17.18.1./引用公共方法和修改私有成员变量引用公共方法和修改私有成员变量2.class def06_01b 3.private int x,y,z=0;4.public void method1()5.int x=3,y=4,z;6.z=x*y;7.System.out.
6、println(z=+z);8.public void show()9.System.out.println(z=+z);10.11.class ch06_01b 12.public static void main(String args)13.def06_01b ss=new def06_01b();14.ss.method1();15.ss.z=12;16.ss.show();17.PagePage6 6/32/32C Chapterhapter6 6 面向对象编程面向对象编程面向对象编程面向对象编程Lu Qiang,2010Hefei University of Technology,
7、School of Computer and InformationCode-protected方法方法1./定义类的定义类的protected 方法,通过创建对象来引用此方法方法,通过创建对象来引用此方法2.class Max06_03 3.private int x,y;4.protected int play(int s,int t)5.int m;6.x=s;7.y=t;8.m=(xy)?x/y:y/x;9.return m;10.11.12.public class ch06_03 13.public static void main(String args)14.int resul
8、t;15.Max06_03 ss=new Max06_03();16.result=ss.play(5,45);17.System.out.println(result=+result);18.19.使用使用protectedprotected定义的成员变量或方法具有二重性,类本身、子类或包中的方法可以访问它们,而其它类没有访问权限定义的成员变量或方法具有二重性,类本身、子类或包中的方法可以访问它们,而其它类没有访问权限Lu Qiang,2010Hefei University of Technology,School of Computer and InformationPagePage7
9、7/32/32C Chapterhapter6 6 面向对象编程面向对象编程面向对象编程面向对象编程包包 未设定public或private访问权限,包内的所有类可以访问它们,包外的不行。包内的所有类可以访问它们,包外的不行。一个JAVA程序文件只能定义一个public类,而且程序文件必须与它同名。为其它程序共享的类须经过编译进行打包,形成一个包文件,然后用为其它程序共享的类须经过编译进行打包,形成一个包文件,然后用import语句加以引用语句加以引用 打包 打包是在java程序编译时进行的,注意参数-d 被编译程序所在路径 javac d 被编译程序所在路径 被编译程序名.java 被编译程
10、序的第一行用package 包名;给出它被打入的包,该包与系统创建的子目录同名PagePage8 8/32/32C Chapterhapter6 6 面向对象编程面向对象编程面向对象编程面向对象编程Lu Qiang,2010Hefei University of Technology,School of Computer and InformationCode “friendly”方法方法1./将将ch06_04_bag类独立建成类独立建成ch06_04_bag.java类文件,放入类文件,放入bag包中包中2./以便其他程序直接调用以便其他程序直接调用,编译命令为编译命令为 C:javac-
11、d 路径路径 ch06_04_bag.java3.package bag;4.public class ch06_04_bag5.public ch06_04_bag()System.out.println(this is a construct);6.public void doing()7.System.out.println(could you tell me);8.1./引用包引用包bag中的中的ch06_04_bag类文件类文件2.import bag.ch06_04_bag;3.public class ch06_04 4.static void store()5.System.o
12、ut.println(this is a store processing);6.public static void main(String args)7.ch06_04_bag y=new ch06_04_bag();8.y.doing();9.store();10.未设定未设定public或或private访问权限的均为访问权限的均为“friendly”包内的所有类可以访问它们,包外的不行包内的所有类可以访问它们,包外的不行Lu Qiang,2010Hefei University of Technology,School of Computer and InformationPageP
13、age9 9/32/32C Chapterhapter6 6 面向对象编程面向对象编程面向对象编程面向对象编程类的继承类的继承 类之间的继承关系是现实世界中遗传关系的直接模拟,它表示类之间的内在联系以及对属性和操作的共享,即子类可以沿用父类(被继承类)的某些特征。子类也可以具有自己独立的属性和操作。子类从父类继承有两个主要的方面:1.属性的继承属性的继承。例如,公司是一个父类,一个公司有名称、地址、经理、雇员等,这些都属于结构方面。2.方法的继承方法的继承。一个父类定义了若干操作,如一个公司要有项目开发、利润创造、经理任命、员工录用等操作,子公司也将继承这些行为。Lu Qiang,2010He
14、fei University of Technology,School of Computer and InformationPagePage1010/32/32C Chapterhapter6 6 面向对象编程面向对象编程面向对象编程面向对象编程属性继承与隐藏属性继承与隐藏 并不因为父类就意味着它有更多的功能。恰恰相反,子类比它们的父类具有更多的功能。因为子类是父类的扩展,增加了父类没有的属性和方法。子类不能访问父类的privateprivate成员,但子类可以访问其父类的publicpublic成员。protectedprotected访问是publicpublic和privatepriv
15、ate访问之间一个保护性的中间层次。虽然被继承的父类成员没有在子类声明中列出,但是这些成员确实存在于子类中。Lu Qiang,2010Hefei University of Technology,School of Computer and InformationPagePage1111/32/32C Chapterhapter6 6 面向对象编程面向对象编程面向对象编程面向对象编程构造方法的继承构造方法的继承 构造方法的继承应遵守以下原则1.子类可以无条件的继承父类不含参数的构造方法无条件的继承父类不含参数的构造方法2.如果子类没有构造方法,则它继承父类无参数的构造方法作为自己的构造方法;如
16、果子类有构造方法,那么在创建子类对象时,则将先执行继承下来的父类的构造方法,然后再执行自己的构造方法3.对于父类中包含有参数的构造方法,子类可以通过在自己的构造方法中使用supersuper关键字来引用,而且必须是子类构造方法中的第一条语句必须是子类构造方法中的第一条语句。Lu Qiang,2010Hefei University of Technology,School of Computer and InformationPagePage1212/32/32C Chapterhapter6 6 面向对象编程面向对象编程面向对象编程面向对象编程终止继承终止继承 为了防止网络黑客将属于系统的重
17、要信息的类来创建其子类,将这些子类添加代码并替换原有的类,防止父类方法的覆盖,保持父类方法不会被子类中定义的方法替代,保证程序的安全有效的运行 处于这种考虑有时需要限制子类对某些方法的继承,通过关键字关键字finalfinal 来达到终止继承的目的PagePage1313/32/32C Chapterhapter6 6 面向对象编程面向对象编程面向对象编程面向对象编程Lu Qiang,2010Hefei University of Technology,School of Computer and InformationCode-终止继承终止继承1./对父类中的public方法设置final
18、属性,禁止子类继承父类中定义的方法2./为系统安全考虑 防止父类方法被非法覆盖3./本程序中父类定义的sum()方法具有final属性,子类不准许定义与sum同名方法4.class mother06_07 5.int x=100,y=20;6.public final void sum()7.int s;s=x+y;8.System.out.println(s=+s);9.10.public class Children06_07 extends mother06_07 11.int m=20,n=30;12.public void sum()13.int f;14.f=m+n;15.Syst
19、em.out.println(f=+f);16.public static void main(String args)17.Children06_07 aa=new Children06_07();18.aa.sum();19.程序编译结果出现错误提示PagePage1414/32/32C Chapterhapter6 6 面向对象编程面向对象编程面向对象编程面向对象编程Lu Qiang,2010Hefei University of Technology,School of Computer and Information目目目目录录录录封装与继承封装与继承1多多态态32覆盖与重载覆盖与重
20、载类的转换类的转换4Lu Qiang,2010Hefei University of Technology,School of Computer and InformationPagePage1515/32/32C Chapterhapter6 6 面向对象编程面向对象编程面向对象编程面向对象编程覆盖覆盖 java 允许子类对父类的同名方法进行重新定义,因此出现了同名方法而方法的内容不同的情况。出现这种情况时,子类引用方法需要指明引用的父类的方法还是子类的方法。引用父类方法时可采用super加上点再加上成员变量或方法名如:super.成员变量或super.方法名(参数表)Lu Qiang,20
21、10Hefei University of Technology,School of Computer and InformationPagePage1616/32/32C Chapterhapter6 6 面向对象编程面向对象编程面向对象编程面向对象编程This&super 的区别的区别 在引用父类的方法时,为了明确的是父类方法需在方法前加super 有时,因为继承虽然对子类的方法进行了重新定义,但是当前的方法中的形参明与成员变量名相同或与方法中的局部变量名相同,为了明确其含义,就要采用this关键字加以区别。下面的例子中在创建Circle类对象时引用Point类的构造器,使用super关键
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ch06 面向 对象 编程 _1in1
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内