众所周知,与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