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); //实例变量 private State state; //构造函数初始化实例变量 Cities(State state) { this.state = state; } //显示国家/地区的静态方法 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(); //调用枚举的静态方法 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