枚舉enum

枚舉類型是JDK1.5引入的新類型,雖然現(xiàn)在都1.8+了,總結(jié)一下枚舉的類型,先看兩個簡單的例子

  • 例子
public enum Color {
        RED, GREEN, BLANK, YELLOW
    }
public enum Color {  
    RED("紅色", 1), GREEN("綠色", 2), BLANK("白色", 3), YELLO("黃色", 4);  
    // 成員變量  
    private String name;  
    private int index;  
    // 構(gòu)造方法  
    private Color(String name, int index) {  
        this.name = name;  
        this.index = index;  
    }  
    // 普通方法  
    public static String getName(int index) {  
        for (Color c : Color.values()) {  
            if (c.getIndex() == index) {  
                return c.name;  
            }  
        }  
        return null;  
    }  
    // get set 方法  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public int getIndex() {  
        return index;  
    }  
    public void setIndex(int index) {  
        this.index = index;  
    }  
} 

其實(shí)enum申明定義的就是一個特殊的class汪诉,這些類都是Enum類的子類(java.lang.Enum<E>),代碼編譯之后谈秫,會把enum申明的類單獨(dú)編譯成一個.class的字節(jié)碼文件扒寄。

  • 特征及其用法
    枚舉類是一個不可被繼承的final 類,枚舉值都是靜態(tài)常量拟烫。
    既然是一個類该编,那就應(yīng)該有構(gòu)造器,方法硕淑,數(shù)據(jù)域上渴,但是枚舉類有些特別,它的構(gòu)造方法必須是私有(private)的喜颁,構(gòu)造器只是在構(gòu)造枚舉值的時候被調(diào)用稠氮。
    • 繼承的Enum的方法
      (1) ordinal()方法: 返回枚舉值在枚舉類種的順序。這個順序根據(jù)枚舉值聲明的順序而定半开。
                 Color.RED.ordinal();  //返回結(jié)果:0
                 Color.BLUE.ordinal();  //返回結(jié)果:1
   (2)  compareTo()方法: Enum實(shí)現(xiàn)了java.lang.Comparable接口隔披,因此可以比較象與指定對象的順序。Enum中的compareTo返回的是兩個枚舉值的順序之差寂拆。當(dāng)然奢米,前提是兩個枚舉值必須屬于同一個枚舉類,否則會拋出ClassCastException()異常纠永。(具體可見源代碼)
                Color.RED.compareTo(Color.BLUE);  //返回結(jié)果 -1
   (3)  values()方法: 靜態(tài)方法鬓长,返回一個包含全部枚舉值的數(shù)組。
                 Color[] colors=Color.values();
                 for(Color c:colors){
                        System.out.print(c+","); 
                 }//返回結(jié)果:RED,BLUE,BLACK YELLOW,GREEN,
   (4)  toString()方法: 返回枚舉常量的名稱尝江。
                 Color c=Color.RED;
                 System.out.println(c);//返回結(jié)果: RED
   (5)  valueOf()方法: 這個方法和toString方法是相對應(yīng)的涉波,返回帶指定名稱的指定枚舉類型的枚舉常量。
                 Color.valueOf("BLUE");   //返回結(jié)果: Color.BLUE
   (6)  equals()方法: 比較兩個枚舉類對象的引用。
public final boolean equals(Object other) {  
     return this==other;  
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末啤覆,一起剝皮案震驚了整個濱河市苍日,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌窗声,老刑警劉巖相恃,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異笨觅,居然都是意外死亡拦耐,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進(jìn)店門见剩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杀糯,“玉大人,你說我怎么就攤上這事炮温。” “怎么了牵舵?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵柒啤,是天一觀的道長。 經(jīng)常有香客問我畸颅,道長担巩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任没炒,我火速辦了婚禮涛癌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘送火。我一直安慰自己拳话,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布种吸。 她就那樣靜靜地躺著弃衍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪坚俗。 梳的紋絲不亂的頭發(fā)上镜盯,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天,我揣著相機(jī)與錄音猖败,去河邊找鬼速缆。 笑死,一個胖子當(dāng)著我的面吹牛恩闻,可吹牛的內(nèi)容都是我干的艺糜。 我是一名探鬼主播,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼倦踢!你這毒婦竟也來了送滞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤辱挥,失蹤者是張志新(化名)和其女友劉穎犁嗅,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晤碘,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡褂微,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了园爷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宠蚂。...
    茶點(diǎn)故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖童社,靈堂內(nèi)的尸體忽然破棺而出求厕,到底是詐尸還是另有隱情,我是刑警寧澤扰楼,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布呀癣,位于F島的核電站,受9級特大地震影響弦赖,放射性物質(zhì)發(fā)生泄漏项栏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一蹬竖、第九天 我趴在偏房一處隱蔽的房頂上張望沼沈。 院中可真熱鬧,春花似錦币厕、人聲如沸列另。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽访递。三九已至,卻和暖如春同辣,著一層夾襖步出監(jiān)牢的瞬間拷姿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工旱函, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留响巢,地道東北人。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓棒妨,卻偏偏與公主長得像踪古,于是被迫代替她去往敵國和親含长。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,982評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 本文包括:枚舉由來如何使用伏穆?枚舉類特性單例設(shè)計(jì)模式定義特殊結(jié)構(gòu)枚舉星期輸出中文的案例枚舉類API 枚舉(enum)...
    廖少少閱讀 2,853評論 2 14
  • 在JDK1.5之前拘泞,JAVA可以有兩種方式定義新類型:類和接口,對于大部分面向?qū)ο缶幊陶砩ǎ羞@兩種似乎就足夠了陪腌,但是...
    淡日臨窗閱讀 3,230評論 0 2
  • 轉(zhuǎn)載:https://segmentfault.com/a/1190000007688908 枚舉類 實(shí)例有限而且...
    ALEXIRC閱讀 591評論 0 0
  • 枚舉類構(gòu)造器 只能使用 private 訪問修飾符,所以無法從外部調(diào)用構(gòu)造器烟瞧,構(gòu)造器只在構(gòu)造枚舉值時被調(diào)用诗鸭; 使用...
    天空在微笑閱讀 282評論 0 0
  • 枚舉類 (enum) 在某些情況下,一個類的對象時有限且固定的参滴,如季節(jié)類强岸,它只有春夏秋冬4個對象這種實(shí)例有限且固定...
    AshengTan閱讀 85,929評論 6 49