方法的重载,让我们调用方法变得容易了许多。
而可变参数更是让我们在书写参数类型一样,只是参数数量不同的方法变得不用那么繁琐。
比如:求输入的几个整数的和。
如果要按照一般方法重载来写的话,就需要判断到底是几个数,然后再决定写入几个形参。而可变参数就不需要考虑这么多了。
带可变参数方法书写形式 :
修饰符 返回值类型 方法名(变量类型 … 变量名){
//就是比带参方法中间多了三个点
}
话不多说,先来看看代码吧:
public class Test01 {
public static void main(String[] args) {
int sum = 0;
sum = add(2,4,5,7,7);//add后面的参数可以写任意多个
System.out.println(sum);
}
public static int add(int ... x) {
int sum = 0;
for(int i = 0;i < x.length;i++) {//可变参数的用法和数组相同
sum += x[i];
}
return sum;
}
}
执行结果:
可变参数 可以写0到n个参数但必须是同种类型的。
public static int add( int y , int ... x)
public static int add( double y , int ... x)
上述写法也是可以的,这样写的话方法就必须要带相应类型参数(拿第二条来说,调用时参数列表里起码要有一个double类型)而且当参数列表中存在可变参数时,可变参数必须放在最后。
值得一提的是:
遇到下面这种情况时,程序选择调用的是固定参数的方法,比如下面这个程序:
public class Test01 {
public static void main(String[] args) {
add(2,3);
}
public static void add(int x,int y) {
System.out.println("执行的是我哟!");
System.out.println(x + y);
}
public static void add(int x,int ... y) {
int sum = 0;
for(int i = 0;i < y.length;i++) {
sum += y[i];
System.out.println();
}
}
}
执行结果如下:
可变参数对于需要输入多个同种类型参数的情况还是很好用的。