是否可以在java中建立具有自定義值列舉?


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

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

對常量使用自定義值

除了在列舉中宣告字串常量外,您還可以對這些常量指定值,如下所示:

enum Vehicles {
   ACTIVA125(80000), ACTIVA5G(70000), ACCESS125(75000), VESPA(90000), TVSJUPITER(75000);
}

無論何時,您都需要向列舉的常量分配自定義值:

  • 要儲存每個常量的值,您需要一個例項變數(通常是私有的)。
  • 您不能顯式建立列舉的物件,因此,您需要新增一個引數化建構函式來初始化值。
  • 初始化應只完成一次。因此,必須將建構函式宣告為私有的或預設的。
  • 要使用例項方法(getter)返回常量值。

示例

在以下 Java 示例中,我們定義了一個名為 Vehicles 的列舉,並聲明瞭五個常量,它們表示車輛名稱及其價格作為值。

 即時演示

enum Vehicles {
   //Constants with values
   ACTIVA125(80000), ACTIVA5G(70000), ACCESS125(75000), VESPA(90000), TVSJUPITER(75000);
   //Instance variable
   private int price;
   //Constructor to initialize the instance variable
   Vehicles(int price) {
      this.price = price;
   }
   public int getPrice() {
      return this.price;
   }
}
public class EnumTest{
   public static void main(String args[]) {
      Vehicles vehicles[] = Vehicles.values();
      for(Vehicles veh: vehicles) {
         System.out.println("Price of "+veh+" is: "+veh.getPrice());
      }
   }
}

輸出

Price of ACTIVA125 is: 80000
Price of ACTIVA5G is: 70000
Price of ACCESS125 is: 75000
Price of VESPA is: 90000
Price of TVSJUPITER is: 75000

更新於: 30-Jul-2019

8K+ 次瀏覽

啟動您的 職業

透過完成課程獲得認證

開始
廣告
© . All rights reserved.