我们如何在Java中将枚举类型与构造函数一起使用?

枚举类型可以具有一个私有的构造函数,该构造函数可用于初始化实例字段。 

EnumDemo类演示了这一点。它具有带有四个常量的Food枚举类型:HAMBURGER,FRIES,HOTDOG和ARTICHOKE。请注意,括号后的每个常数值之后。这将调用该成员的构造函数以初始化该成员的价格字段。 

我们在main()方法的for循环中迭代Food值。在这种方法中,我们首先显示食物常量的名称。接下来,我们检查该食品的价格,并显示价格昂贵还是负担得起。在此之后,为了娱乐,我们演示了使用带有Food枚举类型的switch语句。

例:

public class EnumDemo {
   public enum Food {
      HAMBURGER(7), FRIES(2), HOTDOG(3), ARTICHOKE(4);
      Food(int price) {this.price = price;}
      private final int price;
      public int getPrice() {
         return price;
      }
}
public static void main(String[] args) {
   for (Food f : Food.values()) {
   System.out.print("Food: " + f + ", ");

      if (f.getPrice() >= 4) {
         System.out.print("Expensive, ");
      } else {
               System.out.print("Affordable, ");
   }
switch (f) {
      case HAMBURGER:
         System.out.println("Tasty");
      continue;
      case ARTICHOKE:
         System.out.println("Delicious");
      continue;
      default:
      System.out.println("OK");
    }
  }
 }
}

输出:

Food: HAMBURGER, Expensive, Tasty
Food: FRIES, Affordable, OK
Food: HOTDOG, Affordable, OK
Food: ARTICHOKE, Expensive, Delicious