/**
* 可变参数
*/
public class VariableParamater {
/**
* 统计2个或多个数的和
*/
public static void main(String[] args) {
//计算2个数的和
sum(10,15);
/*
* 问题:如果要计算3个数、4个数、5个数或n个数的和,那我们不是要写n个相同的方法,传递n个参数进行累加?
* 注:在同一个类中有多个方法的名字相同,且参数列表不同(参数个数、参数类型),称之为方法重载(method overload)
* 解决方案:
* 由此类似的问题jdk5.0引入可变参数的新特性,语法格式:修饰符 返回值 方法名(参数数据类型 ...参数名){}
* jdk会将”...参数名“隐式的转换成一个数组,我们在方法中把该参数当作数组处理就可以达到计算n个数的和
*/
sum(10,15,20,30,40);
}
/**
* 统计2个数的和
* @param num1 第1个数
* @param num2 第2个数
* @return 2个数的和
*/
private static int sum(int num1, int num2) {
return num1 + num2;
}
/**
* 统计多个数的和
* @param nums 待统计的数组
* @return 统计后的和
*/
private static int sum(int ...nums) {
int count = 0;
for (int num : nums) {
count += num;
}
return count;
}
}
注意:可变参数,必须是方法参数列表中的最后一个。