java可變引數總結
阿新 • • 發佈:2019-01-05
今天總結一下java中可變引數這個知識點。還是來看一個例子,現在我想寫個方法來計算兩個整形的和並且輸出,這個方法很簡單:
public class KeBian {
public static void main(String[] args) {
sum(5,9);
}
public static void sum(int a,int b) {
int sum = a+b;
System.out.println(sum);
}
}
程式碼很簡單,沒有難點,現在我想多加一個數,求三個整數的和並且輸出結果,這裡我再寫一個方法:
public static void sum(int a,int b,int c) {
int sum = a+b+c;
System.out.println(sum);
}
如果我想再加一個引數呢,是不是要再寫一個方法,這種方法很不好,因為我要寫很多個方法,程式碼量很大,而且很浪費,有什麼解決辦法呢?jdk5.0提供了可變引數的特性,就是傳入方法的引數個數可以改變。對於上述例子,我們可以改成如下程式碼:
public class KeBian {
public static void main(String[] args) {
sum(5 ,9);
sum(5,9,10);
sum(5,9,11,25);
}
public static void sum(int...nums) {
int sum = 0;
for(int i:nums) {
sum+=i;
}
System.out.println(sum);
}
}
這樣改寫之後就可以傳入任意個數的引數,而不用寫多個方法了。這裡的nums的作用其實就是類似於一個數組,把傳入的引數儲存到數組裡面去。可變引數也可以和單個的引數結合在一起使用:
public static void sum(int a,int...nums) {
int sum = 0;
for(int i:nums) {
sum+=i;
}
System.out.println(a);
System.out.println(sum);
}
注意這裡最少要傳入一個引數給a,而後面的陣列則可以不用傳遞引數,這裡要注意一下,如果要和單個引數結合使用,那麼可變引數部分必須放在最後面,因為如果可變引數放在前面,電腦就不能判斷給可變引數傳遞了幾個值,而且程式會報錯,還有一點就是隻能有一個可變引數,這裡稍微注意一下就可以了。