1、可變引數時再引數型別加「...」,必須是三個點,不能多,例如int...;
2、當定義多個引數時,可變引數必須在後面,例如(string s, int... i),而且,可變引數最多只有乙個;
3、可變引數本質上是乙個陣列,在傳遞具體引數時可以傳遞乙個陣列物件,也可以傳遞離散的值(若把引數定義為乙個陣列型別時,則傳遞具體引數時必須傳遞陣列物件);
4、由於可變引數本質上是乙個陣列,因此沒有可變引數陣列,即int...是編譯錯誤的。
舉例:
public class testtest
,new int
); //由於int...變數本質上是乙個陣列,因此傳入陣列引數也是正確的
testtest.sum("lpp:",new int,1,5,2);
}public static void sum(string s, int in , int... i)
for(int i2 : i) //由於int... i的本質是乙個陣列,因此可以像陣列一樣進行遍歷,計算所有可變常量的和
system.out.println(result);}}
結果:
lpp:28
lpp:28
public class testtest
, new string);
testtest.sum("lpp & ", new int, "fgs ","is ","friends!");
}public static void sum(string s1, int in , string... s2)//陣列不是可變引數,因此可以和可變引數共存
system.out.println(s);
int result = 0;
for(int i1 : in)
system.out.println(result);}}
結果:
lpp & fgs is friends!
2
知識點:
(1)當定義的可變引數為陣列時,具體引數必須傳入陣列物件,例如new int,不能傳入離散值1, 2, 3;
(2)當定義的可變引數為「引數型別...」這種格式時,傳入的具體引數可以為陣列物件,也可以為離散值,例如new int 或1, 2, 3;
(3)以上兩種可變引數的定義都不能直接傳入。
(4)雖然可變引數本質上是陣列,但陣列卻不是可變引數,因此在傳入引數中陣列可以和可變引數共存,這並不違背只能有乙個可變引數且必須放在最後的要求。
JDK 5 0新特性 列舉
列舉 需要在一定範圍內取值,這個值只能是這個範圍內的任意乙個。例如 交通訊號燈。列舉的構造方法是私有的。建立列舉的格式 其中enum為列舉關鍵字 enum 列舉型別名稱例如紅綠燈的列舉 private color color test public void test enum color列舉的常用...
jdk1 5 0 新特性 可變引數
1.可變引數的宣告 方法名 資料型別.可變引數 例 test int.i 2.可變引數只能放在所有引數的最後,乙個方法只能有乙個可變引數 例 test string str1,string str2,int.i 3.可變引數可以當做陣列來使用 但是不能用基本型別的陣列作為可變引數 例 int lis...
JDK5 0新特性 1 自動裝箱和拆箱
基本型別的資料值可以直接賦給基本資料物件,基本資料的物件也可以直接賦給基本資料變數 在表示式中,基本型別的資料值可以和基本資料物件進行運算 基本資料型別的陣列不能實現自動裝箱和拆箱,即int不能當成integer使用 演示基本資料型別的自動拆箱和裝箱 public class autobox boo...