_111_列舉類的定義與使用
阿新 • • 發佈:2018-12-11
JDK1.5之前需要自定義列舉類 。
JDK 1.5 新增的 enum 關鍵字用於定義列舉類 若列舉只有一個成員, 則可以作為一種單例模式的實現方式。
-
列舉類的屬性
列舉類物件的屬性不應允許被改動, 所以應該使用 private final 修飾。
列舉類的使用 private final 修飾的屬性應該在構造器中為其賦值 。
若列舉類顯式的定義了帶引數的構造器, 則在列出列舉值時也必須對應的傳入引數。
-
Enum列舉類
必須在列舉類的第一行宣告列舉類物件。
列舉類和普通類的區別:
-
使用 enum 定義的列舉類預設繼承了 java.lang.Enum 類
-
列舉類的構造器只能使用 private 訪問控制符
-
列舉類的所有例項必須在列舉類中顯式列出(, 分隔 ; 結尾).
-
列出的例項系統會自動新增 public static final 修飾
JDK 1.5 中可以在 switch 表示式中使用Enum定義的列舉類的物件作為表示式, case 子句可以直接使用列舉值的名字, 無需新增列舉類作為限定
-
Enum列舉類的主要方法
values()方法:返回列舉型別的物件陣列。該方法可以很方便地遍歷所有的列舉值。
valueOf(String str):可以把一個字串轉為對應的列舉類物件。要求字串必須是列舉類物件的“名字”。如不是,會有執行時異常。
-
實現介面的列舉類
和普通 Java 類一樣,列舉類可以實現一個或多個介面 。
若需要每個列舉值在呼叫實現的介面方法呈現出不同的行為方式, 則可以讓每個列舉值分別來實現該方法。