第一个是枚举类

enum coffeeSize{
    BIG(8), HUGE(10), OVERWHELMING(16);
    private int ounces;
    coffeeSize(int ounces ){
        this.ounces = ounces;
    }
    public int getOunces(){
        return ounces;
    }

}


这是类CoffeeTest1,主要

 public class CoffeeTest1 {
      coffeeSize size;

      public static void main (String args[]) {
          CoffeeTest1 drink1 = new CoffeeTest1();
          drink1.size = coffeeSize.BIG;

          System.out.println(" " + drink1.size.getOunces());
      }
}


以下是输出

8


我的问题 :
   我不理解drink1.size.getounces()如何输出8。我没有给构造函数coffeeSize(8)对象(例如:coffeeSize somex = new coffeeSize(BIG))。我想知道背后的这种简单的微妙逻辑。有人可以帮我理解吗?

最佳答案

我不明白“ drink1.size.getounces()”如何管理输出8。
  
  [...]
  
  我想知道背后的这种简单的微妙逻辑。


要了解其背后的逻辑,您可以将enum视为常规的class(实际上是它的编译方式),并且

BIG(8)


作为此类的一个实例,类似于

new coffeesize(8);


现在应该清楚为什么drink1.size.getOunces()打印8:BIG只是coffeesize枚举的一个实例,在构造它时将ounces设置为8。

09-16 07:10