小编典典

我需要了解Java示例中的枚举的行为吗?

java

第一个是枚举类

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)。我想知道背后的这种简单的微妙逻辑。有人可以帮我理解吗?


阅读 249

收藏
2020-11-30

共1个答案

小编典典

我不明白“ drink1.size.getounces()”如何管理输出8。

[…]

我想知道背后的这种简单的微妙逻辑。

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

BIG(8)

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

new coffeesize(8);

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

2020-11-30