【Java】27.常用API之lang.Enum抽象類與enum枚舉類型

枚舉常數與枚舉類型

 

在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

3.Java枚舉(enum)詳解:Java聲明枚舉類型、枚舉(enum)類、EnumMap 與 EnumSet

http://c.biancheng.net/view/1100.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章