В Java, нестатическая глобальная переменная (также известная как поле экземпляра) должна быть проинициализирована перед ее использованием. Если такая переменная объявлена как final, то ее значение должно быть установлено один раз в момент инициализации.
Есть несколько способов инициализировать такую переменную в Java:
- В момент объявления
public class MyClass {
private final int x = 10;
}
Здесь мы объявляем поле x как final и присваиваем ему начальное значение 10 в момент объявления.
- В конструкторе
public class MyClass {
private final int x;
public MyClass(int x) {
this.x = x;
}
}
Здесь мы объявляем поле x как final, но не инициализируем его при объявлении. Вместо этого мы устанавливаем его значение в конструкторе класса.
- В блоке инициализации экземпляра
public class MyClass {
private final int x;
{
x = 10;
}
}
Здесь мы объявляем поле x как final, но не инициализируем его при объявлении. Вместо этого мы устанавливаем его значение в блоке инициализации экземпляра.
- В методе
public class MyClass {
private final int x;
public void initX() {
x = 10;
}
}
Здесь мы объявляем поле x как final, но не инициализируем его при объявлении. Вместо этого мы устанавливаем его значение в методе initX().
Важно заметить, что если конструктор класса или метод инициализации переменной пытаются изменить значение поля final, это вызовет ошибку компиляции.
1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions
Tелеграмм канал: https://t.me/DEBAGanov
Мое резюме: https://github.com/DEBAGanov