如何在 Java 中使用帶 switch 語句的列舉?\n


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

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

還可以使用自定義值定義列舉到宣告的常量。但是,你需要一個例項變數、一個建構函式和一個獲取器方法來返回值。

帶 switch 語句的列舉

讓我們建立一個列舉,其中包含 5 個常量,表示 5 輛不同的踏板車的型號,其價格作為值,如下所示 −

enum Scoters {
   //Constants with values
   ACTIVA125(80000), ACTIVA5G(70000), ACCESS125(75000), VESPA(90000), TVSJUPITER(75000);
   //Instance variable
   private int price;
   //Constructor to initialize the instance variable
   Scoters(int price) {
      this.price = price;
   }
   //Static method to display the price
   public static void getPrice(int model){
      Scoters constants[] = Scoters.values();
      System.out.println("Price of: "+constants[model]+" is "+constants[model].price);
   }
}

以下 Java 程式使用 switch 語句檢索所有車輛的價格。

示例

public class EnumExample {
   Scoters sc;

   public EnumExample(Scoters sc) {
      this.sc = sc;
   }

   public void displayPrice() {
      switch (sc) {
         case Activa125:
            Scoters.getPrice(0);
            break;
         case Activa5G:
            Scoters.getPrice(1);
            break;
         case Access125:
            Scoters.getPrice(2);
            break;
         case Vespa:
            Scoters.getPrice(3);
            break;
         case TVSJupiter:
            Scoters.getPrice(4);
            break;
         default:
            System.out.println("Model not found");
            break;
      }
   }
   public static void main(String args[]) {
      EnumExample activa125 = new EnumExample(Scoters.ACTIVA125);
      activa125.displayPrice();
      EnumExample activa5G = new EnumExample(Scoters.ACTIVA5G);
      activa5G.displayPrice();
      EnumExample access125 = new EnumExample(Scoters.ACCESS125);
      access125.displayPrice();
      EnumExample vespa = new EnumExample(Scoters.VESPA);
      vespa.displayPrice();
      EnumExample tvsJupiter = new EnumExample(Scoters.TVSJUPITER);
      tvsJupiter.displayPrice();
   }
}

輸出

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-7-2019

1 千+ 瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告
© . All rights reserved.