Меня смущают правила, когда речь заходит о создании ссылочных переменных для типов перечислений.
ВНЕ ОСНОВНОЙ МЕТОД:
[A] Когда я создаю ссылку Переменная для перечисления сама по себе, я встретил с синтаксической ошибкой. Однако [B] Когда я присоединяю эту ссылочную переменную к константе перечисления, это как-то нормально.
Эта ситуация еще более усложняется, когда я экспериментирую с помещением [A] и [B] внутри основного метода - как [X] и [Y].
ВНУТРИ ГЛАВНОГО МЕТОДА:
ОБА [X] и [Y] в порядке. Я могу создать справочную переменную [X] точно так же, как в [A], но без ошибок.
Поэтому я думаю, что источник проблемы в том, что [A] находится вне основного метода, но [X] находится внутри метода.
Я могу создать ссылочную переменную для перечисления внутри метода, но выполнение за ее пределами приведет к синтаксической ошибке. Кто-нибудь знает, почему это так? Большое спасибо.
enum Transport {
CAR, TRUCK, AIRPLANE, TRAIN, BOAT
}
public class EnumDemo {
Transport tp; // <A> - syntax error on ';'
tp = Transport.AIRPLANE;
Transport tb = Transport.AIRPLANE; // <B>
public static void main(String[] args) {
Transport tp; // <X> but this is fine.
tp = Transport.AIRPLANE;
Transport tb = Transport.AIRPLANE; // <Y>
}
}