У меня есть вопрос относительно перечисления (это может быть простой, но...). Это моя программа:
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
Как код "идет" дважды в конструктор? Когда первый раз, а когда второй? И почему конструктор перечисления не может быть общедоступным? Это причина, почему он печатает дважды, а не только один раз?