可變函數源碼理解:學生角度,更易操作
public static void main(String[] args) {/*int c=add(10,29);System.out.println(c);*///此時可以隨意的進行數據的傳遞add(20,30,40);//[I@1db9742:解釋,中括號代表是一個數組,@為一個地址值就,就說明其底層是一個數組,/*** 1.可變參數的提出情況:* 在JDK1.5之后,如果我們定義一個方法,需要接受多個參數,并且多個參數類型一致,我們可以對其簡化成如下格式* 修飾符 返回值類型 方法名(參數類型...形參名){}* 同樣是代表數組,但是在調用這個帶有可變參數的方法時,不用創建數組,直接將數組中的元素作為實際參數進行傳遞,* 其實編譯成的class文件,將這些元素先封裝到一個數組當中,進行傳遞這些動作都在編譯.class文件中自動完成* * 2.可變參數的使用前提:數據類型確定,參數列表的個數不確定* * 3.使用格式:定義方法時使用* 修飾符 返回值類型 方法名 (數據類型 ...變量名){}* * 4.可變參數的原理:* 可變參數的底層就是一個數組,根據傳遞參數的個數不相同,會創建不同長度的數組,來進行存儲這些參數* 傳遞的參數個數可以是0個也可以是多個* * 5.可變參數使用的注意事項:* ①:可變參數在參數列表當中只能存在一次* (int...arr,double...b,char...c)是錯誤的* ②:當參數列表當中不只有可變參數的時候,可變參數必須在參數列表的末尾* (int a,double...b)形式必須是這樣的*/
}
/** 現在要求提升:我們不知道要輸入幾個數進行求和,但是我們知道這些數的數據類型為Int型,* 也就是說不知道數據類型的個數,但是需要求出所有數據的和,此時我們就可以使用可變參數*/
public static void add(int ...arr){System.out.println("存儲數據的數組的首地址:"+arr);int sum=0;for(int i :arr){sum+=i;}System.out.println("所有元素的和為:"+sum);System.out.println("進行計算的元素個數:"+arr.length);//隨時創建一個數組
}
/*//先前的不方便性,定義一個方法求得兩個數據的和
public static int add(int a,int b){return a+b;
}*/
}