Рассмотрим переменную static
, например:
private static int x;
Если мы попытаемся напечатать ее значение в методе main, оно будет равно 0. Таким образом, переменная инициализируется. Теперь рассмотрим, является ли переменная final
:
private static final int x;
Это невозможно; Почему? Мы должны инициализировать его как private static final int x = 2;
или использовать инициализатор stati c, например:
static {
x = 2;
}
Переменная static
инициализируется по умолчанию; так почему же возникает ошибка компиляции, если переменная тоже final
?