解釋在 Java 中使用列舉的限制?


Java 中的列舉 (enum) 是一種資料型別,用於儲存一組常量值。您可以使用列舉來儲存固定值,例如一週中的幾天,一年中的月份等。

您可以使用關鍵字 enum 後跟列舉的名稱來定義列舉,如下所示:

enum Days {
   SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}

需要注意的幾點

宣告列舉時,請記住以下幾點:

  • 建議將常量的名稱全部大寫,例如:
public class EnumerationExample {
   enum Days {
      SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
   }
}
  • 您可以在類內定義列舉。

示例

 線上演示

public class EnumerationExample {
   enum Days {
      Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
   }
   public static void main(String args[]) {
      Days constants[] = Days.values();
      System.out.println("Value of constants: ");
      for(Days d: constants) {
         System.out.println(d);
      }
   }
}

輸出

Value of constants:
SUNDAY
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY
  • 您可以在列舉中包含變數和方法,例如:
enum Vehicles {
   Activa125, Activa5G, Access125, Vespa, TVSJupiter;
   int i; //variable
   Vehicles() { //constructor
      System.out.println("Constructor of the enumeration");
   }
   public void enumMethod() {//method
      System.out.println("This is a method of enumeration");
   }
}

但是,如果編寫其他任何內容,列舉的第一行必須始終是常量的宣告,否則會產生編譯時錯誤:

enum Vehicles {
   int i; //variable
   Activa125, Activa5G, Access125, Vespa, TVSJupiter;
   Vehicles() { //constructor
      System.out.println("Constructor of the enumeration");
   }
   public void enumMethod() {//method
      System.out.println("This is a method of enumeration");
   }
}

編譯時錯誤

Vehicles.java:1: error: <identifier> expected
enum Vehicles {
   ^
Vehicles.java:2: error: ',', '}', or ';' expected
int i; //variable
^
Vehicles.java:3: error: <identifiergt; expected
Activa125, Activa5G, Access125, Vespa, TVSJupiter;
^
3 errors
  • 您不能在方法內定義列舉。如果您嘗試這樣做,它會產生一個編譯時錯誤,提示“列舉型別不能是區域性型別”。
public class EnumExample{
   public void sample() {
      enum Vehicles {
         Activa125, Activa5G, Access125, Vespa, TVSJupiter;
      }
   }
}

編譯時錯誤

EnumExample.java:3: error: enum types must not be local
enum Vehicles {
^
1 error

更新於:2019年7月30日

679 次檢視

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告