《Java高级编程》第02章理论课构造方法与方法重载.ppt
《《Java高级编程》第02章理论课构造方法与方法重载.ppt》由会员分享,可在线阅读,更多相关《《Java高级编程》第02章理论课构造方法与方法重载.ppt(30页珍藏版)》请在三一办公上搜索。
1、第 二 章,构造方法与方法重载,回顾,对象由属性(数据)和方法(函数)组成;类是具有相同属性和方法的对象的集合;封装可以隐藏对象实现的细节部分;对象是引用数据类型,使用new运算符创建对象实例,使用成员运算符访问对象中的成员;,本章相关词汇(蓝色为关键字),本章目标,方法重载重载构造方法对象在内存中的存放形式this关键字,Java中的方法,在Java中,函数直接定义即可;Java中,函数被称为方法;定义一个方法的一般形式:访问权限 返回值类型 方法名称(形参列表)方法主体;我们更关注的是方法原型,对于方法原型的三个主要组成部分应当明确区分:返回值类型方法名称形式参数,方法原型,在Java中定
2、义方法,/*Java中的方法示例代码片段*/*定义求平方值的方法*/public int square(int x)return(x*x);,返回值类型,方法名称,形式参数,案例,/*编写求绝对值的方法来求整数的绝对值*/*AbsoluteValue类,其中包含求绝对值的方法Java中的任何方法都必须在类中定义*/public class AbsoluteValue/*求绝对值的方法*/public int abs(int x)return(x=0)?x:-x);/*main方法,程序入口*/public static void main(String args)/必须先实例化类的对象,才可以
3、调用到其中的成员方法 AbsoluteValue obj=new AbsoluteValue();int a=-8,b;b=obj.abs(a);/调用abs方法求a的绝对值 System.out.println(a+的绝对值是+b);,方法的定义,方法的调用,案例分析,在上面的案例中,我们已经定义了求整数绝对值的方法;但有时候,我们可能还需要求浮点数的绝对值,请问:可以继续使用这个方法吗?事实上是行不通的,这个方法只能求出整数的绝对值,对于浮点数,还需另外再定义求浮点数绝对值的方法。,修改案例,public class AbsoluteValue/*求整数绝对值的方法*/public int
4、 absOfInt(int x)return(x=0)?x:-x);/*求浮点数绝对值的方法*/public float absOfFloat(float x)return(x=0)?x:-x);public static void main(String args)AbsoluteValue obj=new AbsoluteValue();int a=-8,b;b=obj.absOfInt(a);System.out.println(a+的绝对值是+b);float c=-3.14f,d;d=obj.absOfFloat(c);System.out.println(c+的绝对值是+d);,如
5、果还要求其它类型的绝对值,就需要定义更多的方法,这对于调用者来说,将会是非常麻烦的事情。,方法重载,用于定义一组方法,这些方法具有相同的名称,并执行类似的操作,但是却使用不同的参数列表;编译器会根据调用时传递的实际参数自动判断具体调用的是哪个重载方法,如:,/*abs方法的重载*/int abs(int x)float abs(float x)double abs(double x)long abs(long x),方法重载的三大原则,方法名相同参数不同(可以有三方面的不同)数量不同类型不同顺序不同同一作用域温馨提示:方法重载跟方法的返回值类型没有任何关系。也就是说,只有返回值不同的方法不能构
6、成重载。,/*错误的方法重载*/void fun(int x);int fun(int x);,方法重载示例,public class AbsoluteValue public int abs(int x)/重载方式1,求整数的绝对值 return(x=0)?x:-x);public float abs(float x)/重载方式2,求浮点数的绝对值 return(x=0)?x:-x);public double abs(double x)/重载方式3,求双精度数的绝对值 return(x=0)?x:-x);public long abs(long x)/重载方式4,求长整型数的绝对值 ret
7、urn(x=0)?x:-x);public static void main(String args)AbsoluteValue obj=new AbsoluteValue();int a=-8,b;b=obj.abs(a);System.out.println(a+的绝对值是+b);float c=-3.14f,d;d=obj.abs(c);System.out.println(c+的绝对值是+d);,方法重载的两种方式之一,利用不同数据类型的参数重载;对于带有相同数量参数但参数类型不同的重载方法,编译器可以区分它们,如:只要所有参数式样都是唯一的,就可以使用多个重载;很多编程语言已经重载了
8、输出方法,以便您可以用相同的函数名称输出任何类型的数据。,int square(int x)float square(float x)double square(double x),方法重载的两种方式之二,利用不同数量的参数重载,如:将调用与参数最匹配的方法,如果没有方法得出最佳匹配,那么编译器将报错;编译器解决重载的方式与方法定义的顺序无关;重载不考虑方法的返回值类型。,/*函数定义*/int fun(int n1)int fun(int n1,int n2,int n3)/*函数调用*/fun(a);fun(x,y,z);,方法重载的作用域规则,只有属于同一作用域范围内的方法才能构成重载。
9、,class First public void show(),class Second public void show(int x),不构成重载,课堂练习1,在Java中,对于成员方法float add(float f1,float f2)下面选项()是对该成员方法的重载。int add(int n1,int n2)float add(float f)float add(float f2,float f1)void add(float f1,float f2)void add(float f1,float f2,float x),课堂练习2,在Java中,下列方法()不能与int fun(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java高级编程 Java 高级 编程 02 理论 构造 方法 重载
链接地址:https://www.31ppt.com/p-6072040.html