欢迎来到天天文库
浏览记录
ID:59417007
大小:375.50 KB
页数:40页
时间:2020-09-19
《java面向对象程序设计第五章ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java初级第五章面向对象(中)主要内容面向对象的特征封装继承类的多态面向对象的特征面向对象的特征用面向对象语言例如Java所编的程序就一定是面向对象程序吗?回答是否定的,关键看是否用了面向对象的基本特征。面向对象特征主要有:封装、继承与多态。封装封装的定义概念:利用抽象数据类型将数据和基于数据的操作封装在一起,数据被保存在抽象数据类型内部,系统的其他部分只有通过对象被授权的操作,才能访问这个数据。意义自定义数据类型更完善类内部实现细节的变化不会影响外部使用类/对象中的内部数据更安全符合“高内聚、低耦合”的软件设计要求一个例子classFighterPlane{p
2、rivateStringname;privateintmissileNum;publicvoidsetName(String_name){if(_name!=null){name=_name.trim();}}publicvoidsetNum(int_missileNum){if(_missileNum>0){missileNum=_missileNum;}}publicvoidfire(){if(missileNum>0){System.out.println(“nowfireamissile!”);}else{System.out.println(“Nomis
3、sileleft!”);}}}//endclass对象访问控制体现封装,则需要掌握访问控制public,protected,private,“缺省”的用法。在java中这些修饰符可以修饰的种类有3种:修饰类修饰类的属性成员(域)修饰类的成员方法类前修饰符类属性成员方法public缺省publicABprotectedB或(B+C)B缺省BBprivateDD权限依次增大A:所有类B:包中的类D:本类C:所有子类E:包中子类访问控制——注意两个类同写在一个文件中,只能有一个类为public;对象之间方法调用,访问修饰符为protected,应用范围为“B”;产生对象
4、时,类的构造方法前修饰符为private,则只能在类的内部产生对象,从而引出“单件模式”;子类继承,当访问修饰符为protected时,应用范围为“B+C”。访问控制举例1packagecom.resource;publicclassFighterPlane{publicStringname;publicintmissileNum;publicvoidfire(){if(missileNum>0){System.out.println("nowfireamissile!");missileNum-=1;}else{System.out.println("Nomis
5、sileleft!");}}}packagecom.run;importcom.resource.*;publicclassRunPlane{publicstaticvoidmain(Stringargs[]){FighterPlanefp=newFighterPlane();fp.name="苏35";fp.missileNum=6;fp.fire();}}访问控制举例2packagecom.resource;publicclassFighterPlane{publicstaticStringname="苏35";}packagecom.run;importco
6、m.resource.*;publicclassRunPlane{publicstaticvoidmain(Stringargs[]){System.out.println(FighterPlane.name);}}访问控制举例3(单件模式)packagecom.resource;publicclassFighterPlane{privateStringname;privateintmissileNum;privatestaticFighterPlanefp;privateFighterPlane(String_n,int_mn){name=_n;missileN
7、um=_mn;}publicstaticFighterPlanegetInstance(String_n,int_mn){if(fp==null){fp=newFighterPlane(_n,_mn);}returnfp;}publicvoidfire(){if(missileNum>0){System.out.println("nowfireamissile!");missileNum-=1;}else{System.out.println("Nomissileleft!");}}}packagecom.run;importcom.resource.*;publ
8、iccla
此文档下载收益归作者所有