image.png
JDK1.5特性之可变参数:
如果说现在要设计一个方法,这个方法可以接收任意多个整型数据相加。
最初的解决方案:利用数组解决
public class TestDemo {
public static void main(String[] args) {
System.out.println(add(new int[]{1,2,3}));
System.out.println(add(new int[]{4,5}));
}
/**
*
* @param data 数组接收任意多个整型数据相加
* @return
*/
public static int add(int[] data){
int sum=0;
for (int i = 0; i < data.length; i++) {
sum+=data[i];
}
return sum;
}
}
结果:
image.png
但是实现并不标准,要求是可以接收任意多个整型数据,理想的调用方式:
add(1,2,3) add(10,20) add(10,10,10,20,20,30...)
这一功能从JDK1.5之后正式登陆到了Java之中,主要在方法上使用,定义形式为:访问修饰符 返回值类型 方法名(参数类型...参数名){}
可变参数支持数组形式以及,分割形式实参,实现还是按照数组实现
public class TestDemo {
public static void main(String[] args) {
//可变参数接收数组实参
System.out.println(add(new int[]{1,2,3}));
System.out.println(add(new int[]{4,5}));
//可变参数接收,分割的实参
System.out.println(add(1,2,3));
System.out.println(add(4,5));
}
/**
*
* @param data 数组接收任意多个整型数据相加
* @return
*/
public static int add(int...data){
int sum=0;
for (int i = 0; i < data.length; i++) {
sum+=data[i];
}
return sum;
}
}
结果:
image.png
大部分的开发情况要求参数个数明确,这种不确定参数个数的开发往往用于一些程序相关系统类的设计上。
总结:
1.在设计一个类的时候,可变参数并不是优先选择
2.可变参数就属于数组的变形应用