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