方法重载的基本使用
public static void main(String[] args) {
/*方法重载:多个方法名称一样,但是参数列表不一样
好处:只需要记住一个方法名称,就可以实现的多个类似功能*/
System.out.println(sum(10,10));//两个参数
System.out.println(sum(10,10,10));//三个参数
System.out.println(sum(10,10,10,10));//四个参数
//System.out.println(sum(10,10,10,10,10));//找不到任何匹配方法,错误!!!
}
public static int sum(int a,int b){
System.out.println("有两个参数的方法执行了");
return a + b;
}
public static int sum(int a,int b,int c){
System.out.println("有三个参数的方法执行了");
return a + b + c;
}
public static int sum(int a,int b,int c,int d){
System.out.println("有四个参数的方法执行了");
return a + b + c + d;
}
方法重载的注意事项
方法重载与下列因素相关:
1、参数个数不同
2、参数类型不同
3、多类型的顺序不同
方法重载与下列因素无关:
1、与参数的名称无关
//错误写法,与参数名称无关
public static int sum(int x,int y){
return x + y;
}
2、与方法的返回值类型无关
//错误写法,与方法的返回值类型无关
public static double sum(int a,int b){
return a + b + 0.0;
}
重载练习1——四种不同参数类
public static void main(String[] args) {
/*
题目要求:
比较两个数据是否相等
参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型
并在main方法中进行测试
*/
byte a =10;
byte b =20;
System.out.println(isSame(a,b));
System.out.println(isSame((short)10,(short)10));
System.out.println(isSame(10,10));
System.out.println(isSame(10L,10L));
}
public static boolean isSame(byte a,byte b){
System.out.println("两个byte方法执行");
boolean same;
if (a == b){
same =true;
}else{
same =false;
}
return same;
}
public static boolean isSame(short a,short b){
System.out.println("两个short方法执行");
//三元运算符:数据类型 变量名称 = 条件判断 ? 表达式A : 表达式
boolean same = a == b ?true :false;
return same;
}
public static boolean isSame(int a,int b){
System.out.println("两个int方法执行");
return a == b;
}
public static boolean isSame(long a,long b){
System.out.println("两个long方法执行");
boolean same;
if (a == b){
return true;
}else{
return false;
}
}
重载练习2——判断方法的正确
public static void open(){}//正确重载
public static void open(int a){}//正确重载
static void open(int a,int b){}//错误重载,和第八个数据名称冲突
public static void open(double a,int b){}//正确重载
public static void open(int a,double b){}//错误重载,和第六个数据名称冲突
public void open(int i,double d){}//错误重载,和第五个数据名称冲突
public static void OPEN(){}//正确重载
public static void open(int i,int j){}//错误重载,和第三个数据名称冲突
重载练习3——实现重载的println
在调用输出语句的时候,println方法其实就是进行了多种数据类型的重载模式