方法重载机制?
1、以下程序先不使用方法重载机制,分析程序的缺点。
缺点:代码不美观、程序员需要记忆更多的方法名称
public class OverloadTest01{
public static void main(String[] args){
int x = sumInt(10,20);
System.out.println(x);
long y = sumLong(10L,20L);
System.out.println(y);
double z= sumDouble(10.0,20.0);
System.out.println(z);
}
//定义一个计算int数据的求和方法
public static int sumInt(int a ,int b){
return a+b;
}
//定义一个计算long类型数据的求和方法
public static long sumLong(Long a,Long b){
return a+b;
}
//定义一个计算double类型数据的求和方法
public static double sumDouble(double a, double b){
return a+b;
}
}
使用方法重载机制
优点:代码整齐美观、且功能相似的,可以让“方法名相同”,更易于以后的代码编写。
public class OverloadTest01{
public static void main(String[] args){
System.out.println(sum(10,20));
System.out.println(sum(10L,20L));
System.out.println(sum(10.0,20.0));
}
//定义一个计算int数据的求和方法
public static int sum(int a ,int b){
System.out.println("int求和");
return a+b;
}
//定义一个计算long类型数据的求和方法
public static long sum(Long a,Long b){
System.out.println("long求和");
return a+b;
}
//定义一个计算double类型数据的求和方法
public static double sum(double a, double b){
System.out.println("double求和");
return a+b;
}
}
java编译器会通过方法名进行区分,但是在java语言中允许方法名相同的情况出现,如果方法名相同的情况下,编译器会通过方法的参数类型进行方法的区分
什么时候考虑方法重载?
在同一个类中,如果功能1和功能2,他们的功能是相似的,那么可以考虑将他们的方法名一致,这样代码既美观又便于编写。
注意:方法重载overload不能随便使用,如果两个功能压根不相干,不相似,此时两个方法使用重载机制的话,会导致编码更麻烦。
什么时候代码会发生方法重载?
条件1:在同一个类当中
条件2:方法名相同
条件3:参数列表不同(参数的个数不同算不同、参数的类型不同算作不同、参数的顺序不同算作不同)
只要同时满足以上三个条件,那么我们可以认定方法和方法之间发生了重载机制。
方法重载与返回值类型无关,与修饰符列表无关。