JDK5 0新特性 可變引數的本質及示例程式分析

2021-06-20 21:55:06 字數 1399 閱讀 1666

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...