可變參數【JDK 1.5】

在這裏插入圖片描述

JDK1.5之後,如果我們定義一個方法需要接受多個參數,並且多個參數類型一致,我們可以對其簡化。

使用前提

  • 當方法的參數列表數據類型已經確定,但是參數的個數不確定,就可以使用可變參數.

使用格式

  • 定義方法時使用
修飾符 返回值類型 方法名(參數類型... 形參名){  }
  • 其實這個書寫完全等價,與只是後面這種定義,在調用時必須傳遞數組,而前者可以直接傳遞數據即可。
修飾符 返回值類型 方法名(參數類型[] 形參名){  }

原理

  • 可變參數底層就是一個數組,根據傳遞參數個數不同,會創建不同長度的數組,來存儲這些參數
  • 傳遞的參數個數,可以是0個(不傳遞),1,2…多個。

JDK1.5以後。出現了簡化操作。 用在參數上,稱之爲可變參數。

同樣是代表數組,但是在調用這個帶有可變參數的方法時,不用創建數組(這就是簡單之處),直接將數組中的元素作爲實際參數進行傳遞,其實編譯成的class文件,將這些元素先封裝到一個數組中,在進行傳遞。這些動作都在編譯.class文件時,自動完成了。

注意事項

  1. 一個方法的參數列表,只能有一個可變參數
public static void show(int...a,String...b){} // 錯誤!
  1. 如果方法的參數有多個,那麼可變參數必須寫在參數列表的末尾
public static void show(String b,double c,int d,int...a){} // 錯誤!
  1. 可變參數的特殊(終極)寫法
public static void show(Object...obj){}
// 調用方法
show("abc",5.5,10,1,2,3,4);

案例:計算(0~n)整數和的方法

/*
        定義計算(0~n)整數和的方法
        已知:計算整數的和,數據類型已經確定int
        但是參數的個數不確定,不知道要計算幾個數的和,就可以使用可變參數
        add();就會創建一個長度爲0的數組,new int[0]
*/
public class Demo01VarArgs {
    public static void main(String[] args) {

        int i = add(10,20,30,40,50,60,70,80,90,100);
        System.out.println(i); // 550
    }

    public static int add(int...arr) {
		System.out.println(arr);  // [I@71e7a66b : 數組 int類型 地址值
		System.out.println(arr.length);  // 10
        // 定義一個初始化變量,記錄累加求和
        int sum = 0;
        // 遍歷數組,獲取數組中每一個元素
        for (int i : arr) {
            // 累加求和
            sum += i;
        }
        // 把求和結果返回
        return sum;
    }
}

上述add方法在同一個類中,只能存在一個。因爲會發生調用的不確定性

結果:

[I@71e7a66b
10
550

END

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章