前言
我们虽然能够用重载实现,但多个参数无法弹性匹配
代码
class mycalculator{
//下面的四个calculate方法构成了重载
//计算2个数的和,3个数的和,4,5,6个数的和
// public void calculate(int n1){
// System.out.print("平法"+(n1*n1));
// }
// public void calculate(int n1,int n2){
// System.out.print("相乘"+(n1*n2));
// }
// public void calculate(String str){
// System.out.print(str);
// }
//上述三个方法名相同,功能相同,参数个数不同
public int calculate(int... nuns){//表示是可变参数,类型是int 可以接受多个int
System.out.print("接受的参数个数"+nuns.length);
return 0;
}
}
my.calculate(1);
my.calculate(1,2,3);
my.calculate(1,2,3,4);
结果
接受的参数个数1接受的参数个数3接受的参数个数4
实参为数组
int[] arr={1,2,3};
我们可以发现这个可变参数的实质就是数组了
保证可变参数在后
int[] arr={1,2,3};public class overload{
//编写一个main方法
public static void main(String[] args) {
mycalculator m=new mycalculator();
//可变参数的实参可以为数组
int[] arr={1,2,3};
m.calculate("w",arr);
// my.calculate(1,122);
// my.calculate("这些数掌握了吗");
}
}
class mycalculator{
public void calculate(String a,int... nuns){//表示是可变参数,类型是int 可以接受多个int
System.out.print("接受的参数个数"+nuns.length+a);
}
}
//三个int的和
// public int calculate(int n1,int n3,int n2){
// return n1+n2;
// }
// }
结果
接受的参数个数3w