欢迎来到天天文库
浏览记录
ID:40238728
大小:929.50 KB
页数:73页
时间:2019-07-28
《Java 2 —面向对象程序设计 Chapter 8》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Chapter8类的其他功能8-1方法的重载8-1-1重载所谓的“重载”是指相同的方法名称,若参数个数不同,或参数个数相同、类型不同的话,方法便具有不同的功能。范例:01//app8_1,圆形类CCircle,加入字符串类型的color成员02classCCircle//定义类CCircle03{04privateStringcolor;05privatedoublepi=3.14;06privatedoubleradius;0708publicvoidsetColor(Stringstr){//赋值color的方法09color=str;10}11publicvoidse
2、tRadius(doubler){//赋值radius的方法12radius=r;13}14publicvoidsetAll(Stringstr,doubler){//同时赋值color与radius15color=str;16radius=r;17}18publicvoidshow(){//输出半径、颜色与圆面积19System.out.println("color="+color+",Radius="+radius);20System.out.println("area="+pi*radius*radius);21}22}2324publicclassapp8_125{
3、26publicstaticvoidmain(Stringargs[])27{28CCirclecir1=newCCircle();2930cir1.setColor("Red");//赋值cir1的color31cir1.setRadius(2.0);//赋值cir1的radius32cir1.show();3334cir1.setAll("Blue",4.0);//同时赋值cir1的color和radius35cir1.show();36}37}/*app8-1OUTPUT-------color=Red,Radius=2.0area=12.56color=Blue,R
4、adius=4.0area=50.24------------------------*/下面的例子把app8_1的setColor()、setRadius()与setAll()三个方法用Java重载的特性,以单一方法setCircle来取代。从本例可看出,setColor()、setRadius()与setAll()均是在赋值对象的数据成员,这好比是家中分别买了冷气机、暖气机和除湿机一样,不但占空间,且维护上也不方便。Java的重载功能,恰可补足这方面的缺憾。01//app8_2,函数的重载02classCCircle//定义类CCircle03{04privateStr
5、ingcolor;05privatedoublepi=3.14;06privatedoubleradius;0708publicvoidsetCircle(Stringstr){//赋值color成员09color=str;10}11publicvoidsetCircle(doubler){//赋值radius成员12radius=r;13}14publicvoidsetCircle(Stringstr,doubler){//同时赋值color与radius15color=str;16radius=r;17}18publicvoidshow(){19System.out.p
6、rintln("color="+color+",Radius="+radius);20System.out.println("area="+pi*radius*radius);21}22}2324publicclassapp8_225{26publicstaticvoidmain(Stringargs[])27{28CCirclecir1=newCCircle();2930cir1.setCircle("Red");//调用第8行的setCircle()方法31cir1.setCircle(2.0);//调用第9行的setCircle()方法32cir1.show();33
7、34cir1.setCircle("Blue",4.0);//调用第14行的setCircle()方法35cir1.show();36}37}/*app8-2OUTPUT-------color=Red,Radius=2.0area=12.56color=Blue,Radius=4.0area=50.24------------------------*/从上例可看出,通过方法的重载,只需有一个方法名称,却可拥有不同的功用,使用起来相当的方便。图8-1使用重载时,方法会根据参数的个数与类型来调用相对应的方法8-1-
此文档下载收益归作者所有