欢迎来到天天文库
浏览记录
ID:38872670
大小:1.79 MB
页数:30页
时间:2019-06-20
《《Java高级编程》第02章理论课(构造方法与方法重载)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第二章构造方法与方法重载回顾对象由属性(数据)和方法(函数)组成;类是具有相同属性和方法的对象的集合;封装可以隐藏对象实现的细节部分;对象是引用数据类型,使用new运算符创建对象实例,使用成员运算符访问对象中的成员;本章相关词汇(蓝色为关键字)单词说明this这,这个overloaded重载,超载overloadedmethod方法重载本章目标方法重载重载构造方法对象在内存中的存放形式this关键字Java中的方法在Java中,函数直接定义即可;Java中,函数被称为方法;定义一个方法的一般形式:[访问权限]返回值类型方法名称(形参列表){方法主体;}我们更关注的是方法原型,
2、对于方法原型的三个主要组成部分应当明确区分:返回值类型方法名称形式参数方法原型在Java中定义方法/*Java中的方法示例代码片段*//*定义求平方值的方法*/publicintsquare(intx){return(x*x);}返回值类型方法名称形式参数案例/*编写求绝对值的方法来求整数的绝对值*//*AbsoluteValue类,其中包含求绝对值的方法Java中的任何方法都必须在类中定义*/publicclassAbsoluteValue{/*求绝对值的方法*/publicintabs(intx){return((x>=0)?x:-x);}/*main方法,程序入口*/p
3、ublicstaticvoidmain(String[]args){//必须先实例化类的对象,才可以调用到其中的成员方法AbsoluteValueobj=newAbsoluteValue();inta=-8,b;b=obj.abs(a);//调用abs方法求a的绝对值System.out.println(a+"的绝对值是"+b);}}方法的定义方法的调用案例分析在上面的案例中,我们已经定义了求整数绝对值的方法;但有时候,我们可能还需要求浮点数的绝对值,请问:可以继续使用这个方法吗?事实上是行不通的,这个方法只能求出整数的绝对值,对于浮点数,还需另外再定义求浮点数绝对值的方法。
4、修改案例publicclassAbsoluteValue{/*求整数绝对值的方法*/publicintabsOfInt(intx){return((x>=0)?x:-x);}/*求浮点数绝对值的方法*/publicfloatabsOfFloat(floatx){return((x>=0)?x:-x);}publicstaticvoidmain(String[]args){AbsoluteValueobj=newAbsoluteValue();inta=-8,b;b=obj.absOfInt(a);System.out.println(a+"的绝对值是"+b);floatc=-
5、3.14f,d;d=obj.absOfFloat(c);System.out.println(c+"的绝对值是"+d);}}如果还要求其它类型的绝对值,就需要定义更多的方法,这对于调用者来说,将会是非常麻烦的事情。方法重载用于定义一组方法,这些方法具有相同的名称,并执行类似的操作,但是却使用不同的参数列表;编译器会根据调用时传递的实际参数自动判断具体调用的是哪个重载方法,如:/*abs方法的重载*/intabs(intx){……}floatabs(floatx){……}doubleabs(doublex){……}longabs(longx){……}方法重载的三大原则方法名相同
6、参数不同(可以有三方面的不同)数量不同类型不同顺序不同同一作用域温馨提示:方法重载跟方法的返回值类型没有任何关系。也就是说,只有返回值不同的方法不能构成重载。/*错误的方法重载*/voidfun(intx){……};intfun(intx){……};方法重载示例publicclassAbsoluteValue{publicintabs(intx){//重载方式1,求整数的绝对值return((x>=0)?x:-x);}publicfloatabs(floatx){//重载方式2,求浮点数的绝对值return((x>=0)?x:-x);}publicdoubleabs(doub
7、lex){//重载方式3,求双精度数的绝对值return((x>=0)?x:-x);}publiclongabs(longx){//重载方式4,求长整型数的绝对值return((x>=0)?x:-x);}publicstaticvoidmain(String[]args){AbsoluteValueobj=newAbsoluteValue();inta=-8,b;b=obj.abs(a);System.out.println(a+"的绝对值是"+b);floatc=-3.14f,d;d=obj.abs(
此文档下载收益归作者所有