------- android培訓、java培訓、期待與您交流! ----------
枚舉
1.它不能有public的構造函數,這樣做可以保證客戶代碼沒有辦法新建一個枚舉的實例
2.所有枚舉值都是public , static , final的。注意這一點只是針對於枚舉值,我們可以和在普通類裏面定義 變量一樣定義其它任何類型的非枚舉變量,這些變量可以用任何你想用的修
飾符
3.枚舉默認實現了java.lang.Comparable接口。
4.枚舉覆載了了toString方法,因此我們如果調用Color.Blue.toString()默認返回字符串”Blue”.
5.枚舉提供了一個valueOf方法,這個方法和toString方法是相對應的。調用valueOf(“Blue”)將返回Color.Blue.因此我們在自己重寫toString方法的時候就要注意到這一點,一把來說
應該相對應地重寫valueOf方法
6.枚舉還提供了values方法,這個方法使你能夠方便的遍歷所有的枚舉值。
7.枚舉還有一個oridinal的方法,這個方法返回枚舉值在枚舉類種的順序,這個順序根據枚舉值聲明的順序而定,這裏Color.Red.ordinal()返回0
例子:
public enum Color {
Red,
Green,
Blue;
/*
*定義一個變量表示枚舉值的數目
*/
private static int number = Color.values().length ;
/**
* 隨機返回一個枚舉值
@return a random enum value.
*/
public static Color getRandomColor(){
long random = System.currentTimeMillis() % number;
switch ((int) random){
case 0:
return Color.Red;
case 1:
return Color.Green;
case 2:
return Color.Blue;
default : return Color.Red;
}
}
}
public enum Color {
Red {
public String toString(){
return "Color.Red";
}
},
Green {
public String toString(){
return "Color.Green";
}
},
Blue{
public String toString(){
return "Color.Blue";
}
};
}