1. 程式人生 > >_111_列舉類的定義與使用

_111_列舉類的定義與使用

JDK1.5之前需要自定義列舉類 。

JDK 1.5 新增的 enum 關鍵字用於定義列舉類 若列舉只有一個成員, 則可以作為一種單例模式的實現方式。

  • 列舉類的屬性

 列舉類物件的屬性不應允許被改動, 所以應該使用 private final 修飾。

列舉類的使用 private final 修飾的屬性應該在構造器中為其賦值 。

若列舉類顯式的定義了帶引數的構造器, 則在列出列舉值時也必須對應的傳入引數。

  •  Enum列舉類

 必須在列舉類的第一行宣告列舉類物件。

列舉類和普通類的區別:

  1. 使用 enum 定義的列舉類預設繼承了 java.lang.Enum 類

  2. 列舉類的構造器只能使用 private 訪問控制符

  3. 列舉類的所有例項必須在列舉類中顯式列出(, 分隔    ; 結尾).

  4. 列出的例項系統會自動新增 public static final 修飾

JDK 1.5 中可以在 switch 表示式中使用Enum定義的列舉類的物件作為表示式, case 子句可以直接使用列舉值的名字, 無需新增列舉類作為限定

  • Enum列舉類的主要方法

 values()方法:返回列舉型別的物件陣列。該方法可以很方便地遍歷所有的列舉值。

valueOf(String str):可以把一個字串轉為對應的列舉類物件。要求字串必須是列舉類物件的“名字”。如不是,會有執行時異常。

  • 實現介面的列舉類

 和普通 Java 類一樣,列舉類可以實現一個或多個介面 。

若需要每個列舉值在呼叫實現的介面方法呈現出不同的行為方式, 則可以讓每個列舉值分別來實現該方法。