свойства перечисления и побочные эффекты

У меня есть вопрос относительно enum (это может быть простой вопрос, но ....). Это моя программа:

public class Hello { 
         public enum MyEnum 
         { 
               ONE(1), TWO(2); 
               private int value; 
               private MyEnum(int value) 
               { 
                    System.out.println("hello");  
                    this.value = value; 
               } 
               public int getValue() 
               { 
                    return value; 
               } 
        } 
        public static void main(String[] args)  
        { 
              MyEnum e = MyEnum.ONE; 
        } 
}

и мой вопрос: почему выход

hello
hello

и нет

hello ?

Как код "собирается" дважды в конструктор? Когда первый раз, а когда второй? И почему конструктор enum не может быть публичным? Это причина, почему он печатает дважды, а не только один раз?

Ответы на вопрос(3)

Ваш ответ на вопрос