Java高階特性之列舉(二)
Enum定義的列表成員跟介面一樣都是public,static,final的,每一個的列表成員都是一個物件,該物件是由上面提到的構造方法構造的。構造方法的引數列表很重要。
如:
public enum MyEnum {
RED("紅色", 1), GREEN("綠色", 2), BLANK("白色", 3), YELLO("黃色", 4); //每一個成員都是一個MyEnum物件
private String name;
private int index;
MyEnum(String name,int index){
this.name = name;
this.index = index;
}
public int getindex(){
return index;
}
public String getName(){
return name;
}
public String toString(){
return name;
}
}
02.Enum的列舉值都是public static final(非列舉值可以不是)
03.Enum預設實現了java.lang.Comparable介面
04.Enum重寫了toString()
05.Enum提供valueOf(),這個方法與toString相對應,因此重寫toString(),一定要重寫valueOf()
//我們可以重寫toString(),不可以自己重寫valueOf(),當我們重寫toString()方法時,valueOf()會自動重寫,不用我們理會。
也可以單獨針對某個列舉值(物件)重寫toString()方法,如:
public enum Week {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, STR {
public String toString() {
return "輸入引數有誤,引數值範圍在0~6";
}
};
06.Enum提供values()可以遍歷列舉值 返回的就像ArrayList<MyEnum>的物件,然後我們可以這樣遍歷每個列舉值
for(MyEnum m : MyEnum.values()){
System.out.println(m);
}
07.Enum的長度values().length
08.Enum提供oridinal()可以返回列舉值順序