(1)方法重载概念:方法重载是指在一个类中可以定义多个同名的方法,但这些方法的残念书必须不同,及参数的类型不同,参数的顺序不同,参数的个数不同。这样在调用时,可任意根据传递的参数类型和数量自动确定调用的时那个方法。
(2)当前代码不使用方法重载,分析一下下面的方法有什么缺点
public class Method01 {
public static void main(String[] args) {
//调用方法
sumInt(10,20);
sumLong(10L,20L);
sumDouble(10.0,20.0);
}
public static void sumInt(int a,int b) {
int c = a + b;
System.out.println(a + "+" + b + "=" + c);
}
public static void sumLong(long a,long b) {
long c = a + b;
System.out.println(a + "+" + b + "=" + c);
}
public static void sumDouble(double a,double b) {
double c = a + b;
System.out.println(a + "+" + b + "=" + c);
}}
结果如下图:
-
缺点:
-
不美观
-
不方便调用,程序员需要记忆许多的方法名
-
(3)在JAVA 中允不允许在一个类中定义方法时,方法名一致呢?答案是 可以的
下面我们来改动一下代码,将方法名统一改写为sum
public class Method01 {
public static void main(String[] args) {
//调用方法
sum(15,20);
sum(15L,20L);
sum(15.0,20.0);
}
public static void sum(int a,int b) {
int c = a + b;
System.out.println(a + "+" + b + "=" + c);
}
public static void sum(long a,long b) {
long c = a + b;
System.out.println(a + "+" + b + "=" + c);
}
public static void sum(double a,double b) {
double c = a + b;
System.out.println(a + "+" + b + "=" + c);
}}
运行结果如下:
形如以上的形式称之为方法重载
优点:代码美观,易操作,减少了程序员的工作量
(4)一个程序满足什么样的条件时,可以使用方法重载呢
-
条件1:在同一个类中
-
条件2:方法名一致
-
条件3:形式参数列表不同
-
类型不同
-
public static void m1(String s){}
-
public static void m1(int a){}
-
-
顺序不同
-
public static void m1(String s,int a){}
-
public static void m1(int a,String s){}
-
-
个数不同
-
public static void m1(){}
-
public static void m1(String s){}
-
-
-
注意:
-
public static void m1(int a,int b){}
-
public static void m1(int x,int y){}
-
-
是方法重载吗,不是的,只是变量名不一样,属于方法重复
(5)方法重载时编译阶段的机制还是运行阶段的机制?
-
方法重载时编译阶段的机制
-
在编译阶段已经而安城了数据的绑定
-
在编译阶段已经确定了要调用那个方法了
-
(6)什么情况下我们考虑使用方法重载呢
在一个类中,如果两个方法的功能类似,建议将方法名定义为相同的
-
假设所有的方法都叫一个名字可以吗? 可以,不建议,非常不建议,反而会起到反作用
如果能帮到你,请留下一个赞好嘛,你的支持是我的动力