如何使用 Java 在枚举的构造函数中调用另一个枚举值?
java 8object oriented programmingprogramming更新于 2025/4/26 18:07:17
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(); //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