Java枚舉類

枚舉其實(shí)是個特殊的 Java 類,創(chuàng)建枚舉需用enum關(guān)鍵字,枚舉類都是java.lang.Enum的子類,java.lang.Enum是一個抽象類,枚舉類型符合通用類型模式Class Enum<E extends Enum<E>>,這里的 E 表示枚舉類型的名稱,枚舉類的每個值都會映射到protected Enum(String name, int ordinal)構(gòu)造函數(shù)中,每個值(如NumEnum中的ONE)的名稱都被轉(zhuǎn)成字符串, ordinal 表示被創(chuàng)建的順序(默認(rèn)是0,1,2,3...)。

枚舉類enum定義如下:

enum NumEnum{
    ONE,TWO,THREE,FOUR
}

實(shí)際上是調(diào)用了如下方法:

new Enum<NumEnum>("ONE",0);
new Enum<NumEnum>("TWO",1);
new Enum<NumEnum>("THREE",2);
new Enum<NumEnum>("FOUR",3);

常用方法如下:

//比較此枚舉與指定對象的順序
int compareTo(E o) 

//返回與此枚舉常量的枚舉類型相對應(yīng)的 Class 對象
Class<E> getDeclaringClass() 

//返回此枚舉常量的名稱
String name() 

//返回枚舉常量的序數(shù)(它在枚舉聲明中的位置,其中初始常量序數(shù)為零)
int ordinal() 

// 返回枚舉常量的名稱
String toString()

//返回帶指定名稱的指定枚舉類型的枚舉常量
static <T extends Enum<T>> T valueOf(Class<T> enumType, String name) 

NumEnum調(diào)用常用方法如下:

System.out.println(NumEnum.ONE.compareTo(NumEnum.FOUR));// -3
System.out.println(NumEnum.ONE.getDeclaringClass());//class com.jeeno.test.NumEnum
System.out.println(NumEnum.TWO.name());//TWO
System.out.println(NumEnum.THREE.ordinal());//2
System.out.println(NumEnum.THREE.toString());//THREE
System.out.println(NumEnum.ONE.valueOf("FOUR"));//FOUR

實(shí)際上enum就是一個class,只不過 Java 編譯器幫我們做了語法的解析和編譯而已??梢园?code>enum看成是一個普通的class,它們都可以定義一些屬性和方法,不同之處是:enum不能使用extends關(guān)鍵字繼承其他類,因?yàn)?code>enum已經(jīng)繼承了java.lang.Enum(java是單一繼承)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一 Java 枚舉7常見種用法DK1.5引入了新的類型——枚舉。在 Java 中它雖然算個“小”功能,卻給我的開發(fā)...
    歡樂時光歡樂你我閱讀 914評論 0 6
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,734評論 18 399
  • 對象的創(chuàng)建與銷毀 Item 1: 使用static工廠方法,而不是構(gòu)造函數(shù)創(chuàng)建對象:僅僅是創(chuàng)建對象的方法,并非Fa...
    孫小磊閱讀 2,184評論 0 3
  • 伴隨共享單車的火熱興起,雨傘、充電寶、馬扎等各種物品都蹭上了共享經(jīng)濟(jì)的熱點(diǎn),了它們的共享化道路。現(xiàn)今,共享汽...
    佳方有為閱讀 359評論 1 0
  • 2017.2.13 真是213的一天,店里的wifi今天卡的不行,中午外賣送錯了不說,快下班了要去入賬…… 結(jié)果呢...
    丶青木閱讀 255評論 0 0

友情鏈接更多精彩內(nèi)容