枚舉常數與枚舉類型
在Java接口中會經常看到定義這類public static final的常數。這叫作枚舉常數。比如可以使用在switch語法等等在編寫程序時會更清晰和可維護。爲了編寫方便,可以直接省略前面的修飾,事實上在接口裏定義的變量值都不可修改。
在JDK5之後新增了enum語法,實際上用關鍵字enum定義了一個特殊的類,繼承自java.lang.Enum(是一個抽象類),這是編譯程序處理的,不能繼承,否則報錯。
public enum Action{
STOP,RIGHT,LEFT,UP,DOWN
}
經過反編譯,我們可以瞭解enum枚舉常數的部分細節
public final class Action extends Enum{
private Action(String s,int i){
super(s,i);
}
public static final Action STOP;
……
……
public static final Action DOWN;
static{
STOP=New Action("STOP",0);
……
}
}
結論:用enum定義的是特殊類,定義的枚舉常數都是public static final,而且是這個類的實例。而且這個類的構造函數是private,也就是說只能在類中才可以實例化,在類外使用時,我們只能傳入Action實例、聲明Action以及在switch-case語法中列舉Action實例。關於更多自定義枚舉,日後會詳細說。
參考文章
1.Java enum的使用詳解+總結
https://www.cnblogs.com/hyl8218/p/5088287.html
2.Java enum的用法詳解
https://www.cnblogs.com/liaojie970/p/6474733.html