1. 程式人生 > >Java可變引數個數方法

Java可變引數個數方法

/*
 *JDK5.0新特性:可變個數形式引數
 *
 * 1.可匹配0至多個引數
 * 2.可與其他同名方法構成過載
 * 3.與陣列的使用方法一直,只是多了“沒有引數”
 * 4.若要加入其它型別的引數,要寫在可變個數形參之前
 */

class NullToMulVar 
{
	public static void main(String[] args) 
	{
		NullToMulVar n = new NullToMulVar();

		int sum1 = n.comeIn0();
		System.out.println(sum1);

		int sum2 = n.comeIn0(1,2,3,4,5);
		System.out.println(sum2);

		int sum3 = n.comeIn1();
		System.out.println(sum3);

		int sum4 = n.comeIn1(1,2,3,4,5);
		System.out.println(sum4);

		int sum5 = n.comeIn("hello" , 1 , 2 , 3 , 4, 5);
		System.out.println(sum5);
	}
	
	public int comeIn0()
	{
		return 1000000;
	}

	/*因為已經存在comeIn0()方法,所以下面這個可變引數方法的0引數方法被覆蓋了*/
	public int comeIn0(int ... num)
	{
		int sum = 0;
		for (int i = 0; i < num.length; i++)
		{
			sum += num[i];
		}
		return sum;
	}

	/*可以使用0至多個引數的方法*/
	public int comeIn1(int ... num)
	{
		int sum = 0;
		for (int i = 0; i < num.length; i++)
		{
			sum += num[i];
		}
		return sum;
	}

	/*若要加入其它型別的引數,要寫在可變個數形參之前*/
	public int comeIn(String str , int ... num)
	{
		int sum = this.comeIn1(num);
		sum += str.length();
		return sum;
	}
}
1000000
15
0
15
20