W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
枚舉類型定義了兩件事:
以下代碼聲明了一個名為Level的公共枚舉類型,它具有四個枚舉常量:LOW,MEDIUM,HIGH和URGENT。
public enum Level { LOW, MEDIUM, HIGH, URGENT; }
Level枚舉類型定義了四個枚舉常量。
Level枚舉類型的變量只能有四個值之一 - LOW,MEDIUM,HIGH和URGENT或null。
我們可以使用點符號通過使用枚舉類型名稱作為限定符來引用枚舉常量。
以下代碼將值分配給Level枚舉類型的變量:
Level low = Level.LOW; Level medium = Level.MEDIUM; Level high = Level.HIGH; Level urgent = Level.URGENT;
我們不能實例化枚舉類型。以下代碼導致編譯時錯誤:
Level badAttempt = new Level(); // A compile-time error
枚舉類型為其所有常量分配一個順序號,稱為ordinal。
序數(shù)從零開始,在常數(shù)列表中從第一個到最后一個遞增1。
第一個枚舉常量賦值為零,第二個為1,第三個為2,依此類推。
分配給Level枚舉類型中聲明的常量的序數(shù)值為0到LOW,1到MEDIUM,2到HIGH,以及3到URGENT。
每個枚舉常量都有一個與常量的標識符相同的名稱。例如,級別枚舉類型中的LOW常數(shù)的名稱為“LOW”。
我們可以分別使用name()和ordinal()方法獲取枚舉常量的名稱和序號。
每個枚舉類型都有一個名為values()的靜態(tài)方法,它按它們在正文中聲明的順序返回一個常量數(shù)組。
以下代碼打印在Level枚舉類型中聲明的所有枚舉常量的名稱和序號。
enum Level { LOW, MEDIUM, HIGH, URGENT; } public class Main { public static void main(String[] args) { for (Level s : Level.values()) { String name = s.name(); int ordinal = s.ordinal(); System.out.println(name + "(" + ordinal + ")"); } } }
上面的代碼生成以下結果。
我們可以從名稱或位置獲得枚舉常量的引用。使用valueOf()方法。
枚舉常量的反向查找區(qū)分大小寫。
我們可以使用values()方法返回的數(shù)組,通過順序執(zhí)行反向查找。
values()方法返回的數(shù)組中的值的順序與枚舉常量的聲明順序相同。
枚舉常量的序數(shù)從零開始。
以下代碼演示了如何反轉查找枚舉常量:
enum Level { LOW, MEDIUM, HIGH, URGENT; } public class Main { public static void main(String[] args) { Level low1 = Level.valueOf("LOW"); // A reverse lookup using a name Level low2 = Level.values()[0]; // A reverse lookup using an ordinal System.out.println(low1); System.out.println(low2); System.out.println(low1 == low2); } }
上面的代碼生成以下結果。
java.util.EnumSet集合類與枚舉類型的枚舉常量列表一起使用。
下面的代碼演示了如何使用EnumSet類來處理枚舉常量的范圍。
import java.util.EnumSet; enum Level { LOW, MEDIUM, HIGH, URGENT; } public class Main { public static void main(String[] args) { EnumSet<Level> allLevels = EnumSet.allOf(Level.class); print(allLevels); EnumSet<Level> l = EnumSet.range(Level.LOW, Level.URGENT); print(l); } public static void print(EnumSet<Level> levels) { for (Level d : levels) { System.out.println(d + " "); } } }
上面的代碼生成以下結果。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: