1. 程式人生 > >java可變引數總結

java可變引數總結

今天總結一下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,而後面的陣列則可以不用傳遞引數,這裡要注意一下,如果要和單個引數結合使用,那麼可變引數部分必須放在最後面,因為如果可變引數放在前面,電腦就不能判斷給可變引數傳遞了幾個值,而且程式會報錯,還有一點就是隻能有一個可變引數,這裡稍微注意一下就可以了。