Eu preciso entender o comportamento do enum no exemplo java?

O primeiro é a classe enum

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

}

Esta é a classe CoffeeTest1 e principal

 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());
      }
}

O abaixo é saída

8  

Minha pergunta: eu não entendo o comodrink1.size.getounces() conseguir saída 8. Eu não dei construtorcoffeeSize(8) objeto (ex:coffeeSize somex = new coffeeSize(BIG)). Eu quero conhecer essa lógica sutil simples por trás. Alguém pode me ajudar a entender por favor?

questionAnswers(5)

yourAnswerToTheQuestion