Значение переменной по умолчанию в Java - PullRequest
7 голосов
/ 13 марта 2012

Каждый тип в Java имеет примитивное значение при объявлении. Эта статья содержит описание для примитивных типов данных Примитивные типы данных . Зная это, почему Eclipse показывает ошибку, сообщающую, что переменная, возможно, не была инициализирована? Если у меня есть например

int x;
x++;

Ответы [ 6 ]

15 голосов
/ 13 марта 2012

По ссылке

Локальные переменные немного отличаются;компилятор никогда не назначает значение по умолчанию для неинициализированной локальной переменной.Если вы не можете инициализировать локальную переменную там, где она объявлена, убедитесь, что вы присвоили ей значение, прежде чем пытаться ее использовать.Доступ к неинициализированной локальной переменной приведет к ошибке времени компиляции.

5 голосов
/ 13 марта 2012

Из Спецификации языка Java , Java SE 8 Edition, 4.12.5 Начальные значения переменных :

Локальной переменной (§14.4, §14.14) должно быть явно задано значение перед ее использованием, либо путем инициализации (§14.4), либо с помощью присваивания (§15.26) таким способом, который можно проверить с помощью правил для определенных назначение (§16 (Определенное назначение)).

4 голосов
/ 13 марта 2012

Локальные переменные не инициализируются.

Это локальная переменная:

void aaa() {
    int x;
}

Это переменная экземпляра. Они инициализируются автоматически:

class X {
    int x;
}
1 голос
/ 09 марта 2018

Тип данных Значение по умолчанию (для полей)

байт 0

короткий 0

int 0

длинный 0L

float 0.0f

двойной 0,0d

char ‘u0000’

Строка (или любой объект) null

логическое значение false

0 голосов
/ 13 марта 2012

Из предоставленной вами ссылки «Примитивные типы данных»: «Локальные переменные немного отличаются; компилятор никогда не назначает значение по умолчанию для неинициализированной локальной переменной. Если вы не можете инициализировать локальную переменную там, где она объявлена, обязательно назначьте ее»значение перед попыткой его использования. Доступ к неинициализированной локальной переменной приведет к ошибке времени компиляции ".

0 голосов
/ 13 марта 2012

То, что вы видите, - не ошибка, а ваши предпочтения затмения. Вы можете изменить его, чтобы игнорировать неинициализированные переменные в настройках Eclipse.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...