2015-03-09 6 views
0

Почему это нормально объявлять конечные локальные переменные (внутри методов) без их инициализации, но не объявлять конечные поля без их инициализации?Использование конечного ключевого слова

+0

Внутри метода вы не можете использовать * любую * переменную без инициализации. – shmosel

+0

public void method() { \t int a; \t int b; } почему не может –

+0

@shmosel: вопрос правильный, и я не согласен с вашим комментарием, так как вы можете иметь переменную в методе независимо от того, инициализируете ее или нет. человек не спрашивает об использовании объявленной переменной, которую он запрашивает об инициализации. –

ответ

1

для переменных, объявленных глобально (i означает переменные экземпляра), java сама присваивает значения по умолчанию, например. to int Тип переменной присваивает 0 и так для всех типов и после назначения значения конечной переменной вы не можете изменить это, поэтому он запрашивает присвоение значения

+0

Итак, почему бы не разрешить по умолчанию значение null? Он не будет более бесполезным, чем неиспользуемая локальная переменная ... – shmosel

+0

это не имеет никакого смысла, а во-вторых, Java не обеспечивает инициализацию конечной переменной в методах, так как в методах ее ответственность за инициализацию конечной переменной (в случае, если вы готовы использовать это :)), но, например, переменная, она выполняет принудительное назначение, потому что в этом случае java будет нести ответственность за присвоение значения по умолчанию и, как я уже упоминал, после назначения конечной переменной FINAL :). надеюсь, это ответит на ваш вопрос. –

+0

Вы не ответили на мой вопрос. Я согласен с тем, что бесполезно устанавливать его как значение по умолчанию. Но это позволяет использовать декларацию неактивной локальной переменной. – shmosel

Смежные вопросы