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?