资源描述:
《ch06.面向对象编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、︳Java程序设计第六章面向对象编程路强vcclab@qq.comhttp://cadcg.hfut.edu.cn2012/11/29本章学习提示本章学习Java语言中面向对象编程的具体实施过程。封装与继承覆盖与重载多态类的强制转换“设计模式”初体验--简单工厂模式Chapter6面向对象编程HefeiUniversityofTechnology,Page2/39SchoolofComputerandInformation目录1封装与继承2覆盖与重载3多态机制4类的转换5“设计模式”初体验–简单工厂模式Chapter6面向对象编程Hef
2、eiUniversityofTechnology,Page3/39SchoolofComputerandInformation封装面向对象的程序设计以类作为基本处理单元,对象是类的实例。面向对象程序设计的重要特征是具有封装性、多态性和继承性。所谓封装表现在以下几个方面1.在类的定义中设置对对象中的成员变量和方法进行访问的权限。2.提供一个统一供其它类引用的方法。3.其它对象不能直接修改本对象所拥有的属性和方法。对象变量的四种访问权限publicprotectedprivate默认Chapter6面向对象编程HefeiUniversityof
3、Technology,Page4/39SchoolofComputerandInformationCode-封装1.//引用私有方法和修改私有成员变量1.//引用公共方法和修改私有成员变量2.classdef06_01{2.classdef06_01b{3.privateintx,y,z=0;3.privateintx,y,z=0;4.privatevoidmethod1(){4.publicvoidmethod1(){5.intx=3,y=4,z;5.intx=3,y=4,z;6.z=x*y;6.z=x*y;7.System.out.printl
4、n("z="+z);}7.System.out.println("z="+z);}8.publicvoidshow(){8.publicvoidshow(){9.System.out.println("z="+z);}9.System.out.println("z="+z);}10.}10.}11.classch06_01{11.classch06_01b{12.publicstaticvoidmain(Stringargs[]){12.publicstaticvoidmain(Stringargs[]){13.def06_01ss=newdef0
5、6_01();13.def06_01bss=newdef06_01b();14.ss.method1();//调用私有方法出错14.ss.method1();15.ss.z=12;//修改私有变量出错15.ss.z=12;16.ss.show();16.ss.show();}17.}17.}18.}Chapter6面向对象编程HefeiUniversityofTechnology,Page5/39SchoolofComputerandInformationCode-protected方法1.//定义类的protected方法,通过创建对象来引用此方
6、法2.classMax06_03{3.privateintx,y;4.protectedintplay(ints,intt){使用protected5.intm;6.x=s;定义的成员变量7.y=t;或方法具有二重8.m=(x>y)?x/y:y/x;9.returnm;性,类本身、子10.}类或包中的方法11.}12.publicclassch06_03{可以访问它们,13.publicstaticvoidmain(Stringargs[]){而其它类没有访14.intresult;15.Max06_03ss=newMax06_03();问权限16
7、.result=ss.play(5,45);17.System.out.println("result="+result);18.}19.}Chapter6面向对象编程HefeiUniversityofTechnology,Page6/39SchoolofComputerandInformation包未设定public或private访问权限,包内的所有类可以访问它们,包外的不行。一个Java程序文件只能定义一个public类,而且程序文件必须与它同名。为其它程序共享的类须经过编译进行打包,形成一个包文件,然后用import语句加以引用打包
8、打包是在Java程序编译时进行的,注意参数-d被编译程序所在路径Javac–d被编译程序所在路径被编译程序名.Java