詳解java枚舉用法及實(shí)例
一、枚舉類型作為常量
package myenum; /** * @author zzl * 簡(jiǎn)單的枚舉作為常量 */ public enum Color { GREEN,RED,YELLOW; public static void main(String[] args) { for (Color c : values()) { System.out.println("color:"+c); } } } //輸出 /** color:GREEN color:RED color:YELLOW */
其實(shí)在更近一步的話我們可以輸出每個(gè)枚舉實(shí)例的具體位置
package myenum; /** * @author zzl * 簡(jiǎn)單的枚舉作為常量 */ public enum Color { GREEN,RED,YELLOW; public static void main(String[] args) { for (Color c : values()) { System.out.println(c + " position "+c.ordinal()); } } } //輸出結(jié)果 /** GREEN position 0 RED position 1 YELLOW position 2 */
二、與swith結(jié)合使用
public enum Color { GREEN,RED,YELLOW; public static void main(String[] args) { Color c = RED; switch (c) { case RED: System.out.println("紅色"); break; case GREEN: System.out.println("綠色"); break; case YELLOW: System.out.println("黃色"); break; default: break; } } } //輸出 /** 紅色 */
從上面的例子可以看出枚舉的多態(tài)性,其實(shí)可以講Color作為枚舉的超類,其中的實(shí)例在運(yùn)行時(shí)表現(xiàn)出多態(tài)。(如上面的輸出結(jié)果為紅色,下面的例子來(lái)驗(yàn)證這一特性。)
三、多態(tài)性(在Color中添加抽象方法)
public enum Color { GREEN{ void description(){ System.out.println("綠燈行!"); } },RED{ void description(){ System.out.println("紅燈停!"); } },YELLOW{ void description(){ System.out.println("黃燈亮了等一等!"); } };//如果枚舉中有方法則左后一個(gè)實(shí)例以“;”結(jié)束 abstract void description(); public static void main(String[] args) { for (Color c : values()) { c.description(); } } } <pre name="code" class="java">//輸出 /** 綠燈行! 紅燈停! 黃燈亮了等一等! */
四、利用構(gòu)造器為實(shí)例添加描述
public enum ColoStructure { GREEN("綠色"),RED("紅色"),YELLOW("黃色");//如果枚舉中有方法則左后一個(gè)實(shí)例以“;”結(jié)束 public String description; private ColoStructure(String des){ this.description = des; } public static void main(String[] args) { for (ColoStructure c : values()) { System.out.println(c.description); } } } <pre name="code" class="java"><pre name="code" class="java">//輸出 /** 綠色 紅色 黃色 */
希望本文可以幫到有需要的朋友
相關(guān)文章
Idea運(yùn)行單個(gè)main方法,不編譯整個(gè)工程的問(wèn)題
這篇文章主要介紹了Idea運(yùn)行單個(gè)main方法,不編譯整個(gè)工程的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04mybatis根據(jù)表逆向自動(dòng)化生成代碼的實(shí)現(xiàn)
若采用mybatis框架,數(shù)據(jù)庫(kù)新建表,手動(dòng)編寫的話,需要編寫大量的實(shí)體類、mapper文件、mapper.xml文件,都是一些重復(fù)且有規(guī)律的工作。我們可以引用插件,然后做配置,自動(dòng)生成這些文件,本文就來(lái)詳細(xì)的介紹一下2021-08-08java.io.EOFException產(chǎn)生原因及解決方法(附代碼)
java.io.EOFException表示在讀取數(shù)據(jù)時(shí)突然遇到了文件或流的末尾,也就是說(shuō)客戶端或服務(wù)器已經(jīng)關(guān)閉了連接,但是你還在嘗試讀取數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于java.io.EOFException產(chǎn)生原因及解決的相關(guān)資料,需要的朋友可以參考下2023-09-09Java 實(shí)現(xiàn)完整功能的學(xué)生管理系統(tǒng)實(shí)例
讀萬(wàn)卷書(shū)不如行萬(wàn)里路,只學(xué)書(shū)上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Java實(shí)現(xiàn)一個(gè)完整版學(xué)生管理系統(tǒng),大家可以在過(guò)程中查缺補(bǔ)漏,提升水平2021-11-11在Java和PostgreSQL枚舉之間轉(zhuǎn)換的通用方法
枚舉類型(enum)是一種方便的數(shù)據(jù)類型,允許我們指定一個(gè)常量列表,對(duì)象字段或數(shù)據(jù)庫(kù)列可以設(shè)置為該列表中的值,在本文中,我將回顧處理Java和PostgreSQL枚舉轉(zhuǎn)換的通用方法,需要的朋友可以參考下2023-10-10Java使用線程池批量處理數(shù)據(jù)操作具體流程
這篇文章主要給大家介紹了關(guān)于Java使用線程池批量處理數(shù)據(jù)操作的相關(guān)資料,Java多線程編程中線程池是一個(gè)非常重要的概念,線程池可以提高線程的復(fù)用率和任務(wù)調(diào)度的效率,尤其是當(dāng)需要查詢大批量數(shù)據(jù)時(shí),需要的朋友可以參考下2023-06-06