如何使用 Java 在列舉建構函式內呼叫其他列舉值?


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

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

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

列舉中的方法和變數

列舉與類類似,您可以在其中擁有變數、方法(僅具體方法)和建構函式。

例如,我們有一個列舉中的元素,其值如下 −

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

要定義其中的建構函式,首先要宣告一個例項變數來儲存元素的值。

private int price;

然後,宣告一個引數化建構函式,初始化上述建立的例項變數。

Scoters (int price) {
   this.price = price;
}

使用另一個列舉的值初始化列舉

要使用另一個列舉中的值初始化列舉。

  • 將所需列舉宣告為例項變數。
  • 使用引數化建構函式進行初始化。

舉例

import java.util.Scanner;
enum State{
   Telangana, Delhi, Tamilnadu, Karnataka, Andhrapradesh
}
enum Cities {
   Hyderabad(State.Telangana), Delhi(State.Delhi), Chennai(State.Tamilnadu), Banglore(State.Karnataka), Vishakhapatnam(State.Andhrapradesh);
   //Instance variable
   private State state;
   //Constructor to initialize the instance variable
   Cities(State state) {
      this.state = state;
   }
   //Static method to display the country
   public static void display(int model){
      Cities constants[] = Cities.values();
      System.out.println("State of: "+constants[model]+" is "+constants[model].state);
   }
}
public class EnumerationExample {
   public static void main(String args[]) {
      Cities constants[] = Cities.values();
      System.out.println("Value of constants: ");
      for(Cities d: constants) {
         System.out.println(d.ordinal()+": "+d);
      }
      System.out.println("Select one model: ");
      Scanner sc = new Scanner(System.in);
      int model = sc.nextInt();
      //Calling the static method of the enum
      Cities.display(model);
   }
}

輸出

Value of constants:
0: Hyderabad
1: Delhi
2: Chennai
3: Banglore
4: Vishakhapatnam
Select one model:
2
State of: Chennai is Tamilnadu

更新於: 02-Jul-2020

2K+ 瀏覽次數

開啟您的 職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.