Java如何定义枚举类型的字段?

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