1.可变参数的引入
package cn;
/**
* 可变参数
*/
public class ChangeParameterDemo {
public static void main(String[] args) {
//2个数求和
int a = 10;
int b = 20;
int result = sum(a,b);
System.out.println("result:"+result);
int c = 30;
result = sum(a,b,c);
System.out.println("result:"+result);
}
public static int sum(int a,int b) {
return a + b;
}
public static int sum(int a,int b,int c){
return a + b + c;
}
}这样是可以实现功能,但是如果我要写一个求和的功能,我不知道调用此功能之前的参数个数,调用的时候我就知道我传递多少个实际参数。其实,意思就是我想穿几个实际参数,就传几个实际参数。怎么办呢?
思路一:使用数组啊
package cn;
/**
* 可变参数
*/
public class ChangeParameterDemo {
public static void main(String[] args) {
//2个数求和
int a = 10;
int result = sum(new int[]{a});
System.out.println(result);
int b = 20;
result = sum(new int[]{a,b});
System.out.println(result);
int c = 30;
result = sum(new int[]{a,b,c});
System.out.println(result);
int d = 40;
result = sum(new int[]{a,b,c,d});
System.out.println(result);
}
public static int sum(int[] a) {
int sum = 0 ;
for (int i = 0; i < a.length; i++) {
sum += a[i];
}
return sum;
}
}这样是可以解决问题,但是每次我们都要实例化数组对象,好烦,能不能简单点,你又不是个演员。哈哈,看玩笑的。实际上JDK5之后提供了可变参数来解决这类问题。
思路二:使用JDk5之后提供的可变参数
package cn;
/**
* 可变参数
*/
public class ChangeParameterDemo {
public static void main(String[] args) {
//2个数求和
int a = 10;
int result = sum(a);
System.out.println(result);
int b = 20;
result = sum(a,b);
System.out.println(result);
int c = 30;
result = sum(a,b,c);
System.out.println(result);
int d = 40;
result = sum(a,b,c,d);
System.out.println(result);
}
public static int sum(int... a) {
int sum = 0 ;
for (int i = 0; i < a.length; i++) {
sum += a[i];
}
return sum;
}
}2.那么可变参数是什么?
定义方法的时候不知道该定义多少个参数
3.可变参数的格式
修饰符 返回值类型 方法名(数据类型...变量名){}4.注意事项
修饰符 返回值类型 方法名(数据类型...变量名){}这里额变量其实是一个数组。
如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个。
本文出自 “11831428” 博客,请务必保留此出处http://11841428.blog.51cto.com/11831428/1862381
原文:http://11841428.blog.51cto.com/11831428/1862381