众所周知,与enum其他编程语言相比,Java枚举类型更强大。基本上enum是类类型的,因此它可以具有构造函数,方法和字段。
在下面的示例中,您将看到如何在枚举类型中定义字段。因为Fruit枚举的每个常量值Fruit都是其自身的一种类型,所以它将具有自己的price字段。该price字段包含用于每个常量,例如一个唯一的值APPLE,ORANGE等等。
在结果中,您将看到将为每个常量值调用构造函数,并使用传递给构造函数的值对其进行初始化。package org.nhooo.example.fundamental;
enum Fruit {
APPLE(1.5f), ORANGE(2), MANGO(3.5f), GRAPE(5);
private float price;
Fruit(float price) {
System.out.println("Name: " + this.name() + " initialized.");
this.price = price;
}
public float getPrice() {
return this.price;
}
}
public class EnumFieldDemo {
public static void main(String[] args) {
// 获取所有枚举常量值的名称和价格。
for (Fruit f : Fruit.values()) {
System.out.println("Fruit = " + f.name() + "; Price = " + f.getPrice());
}
}
}
我们的演示结果如下:Name: APPLE initialized.
Name: ORANGE initialized.
Name: MANGGO initialized.
Name: GRAPE initialized.
Fruit = APPLE; Price = 1.5
Fruit = ORANGE; Price = 2.0
Fruit = MANGGO; Price = 3.5
Fruit = GRAPE; Price = 5.0