首先我们了解一下什么叫"重载"?
简而言之,重载就是方法名相同,参数列表不同的一种现象。
例:
//定义方法add()
//方法1
public static int add(int a){
return a;
}
//方法2
public static int add(int a,int b){
return a+b;
}
//可以发现方法1和方法2的方法名是相同的(都是add),这种现象就是重载
可变参数列表的使用
我们以一个例子来说明可变参数列表这种现象吧
需求:创建add方法,分别求出a+b,a+b+c,a+b+c+d的值
我们可以通过方法的重载来完成上述需求
例:
public class ParaTest {
public static void main(String[] args) {
//a+b
int add1 = add(1, 2);
//a+b+c
int add2 = add(1, 2, 3);
//a+b+c+d
int add3 = add(1, 2, 3, 4);
}
//方法1
public static int add(int a,int b){
return a;
}
//方法2
public static int add(int a,int b,int c){
return a+b+c;
}
//方法3
public static int add(int a,int b,int c,int d){
return a+b+c+d;
}
}
我们可以通过上述代码来完成我们的需求,但是大家可以发现,方法1,方法2及方法3的代码功能都是重复的,一点也不灵活,如果我们参与计算的数据很多的话,一点也不方便我们编写代码,因此我们需要使用简洁高效的方法来实现我们的需求。
因此可变参数列表就可以登场啦!!!
我们通过观察发现,方法1-3之间最大的区别就是参数列表,所以我们可以从参数列表下手简化我们的代码
例:
public class ParaTest {
public static void main(String[] args) {
add(1, 2);
add(1, 2, 3);
add(1, 2, 3, 4);
}
//此处为了演示就将方法设为无返回值了
//通过int...a可以匹配到传入到这里的所有int类型参数,其他类型参数类似操作亦可实现,例String...str
public static void add(int...a){}
}
以上,仅供学习参考