Aufzählung Eigenschaften und Nebenwirkungen

Ich habe eine Frage zu enum (es könnte eine einfache sein, aber ....). Das ist mein Programm:

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

und meine frage ist: warum ist die ausgabe

hello
hello

und nicht

hello ?

Wie geht der Code zweimal zum Konstruktor? Wann ist das erste Mal und wann ist das zweite? Und warum kann der Enum-Konstruktor nicht öffentlich sein? Ist dies der Grund, warum zweimal und nicht nur einmal gedruckt wird?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage