JDK5.0新特性--可变参数

时间:2022-12-25 15:23:31
/**
 * 可变参数
 */
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;
	}

}

注意:可变参数,必须是方法参数列表中的最后一个。