/** * 可变参数 */ 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; } }
注意:可变参数,必须是方法参数列表中的最后一个。