我们可以在 Java 中创建具有自定义值的枚举吗?
java 8object oriented programmingprogramming
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 { //具有值的常量 ACTIVA125(80000), ACTIVA5G(70000), ACCESS125(75000), VESPA(90000), TVSJUPITER(75000); //实例变量 private int price; //用于初始化实例变量的构造函数 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