static {
System.out.println("Non-static block");
}
// здесь пустота образовавшаяся в связи с отсутствием информации об этом в прошедших лекциях!
// к чему относится нижний раздел, который хочется назвать статическим (но перед ним нет волшебного слова static)?
// видимо он не статик, тогда к чему он здесь?
{
System.out.println("Static block");
printAllFields(this);
}
Oleg
19 уровень
Почему перед открывающейся скобкой нет static? И почему тогда нельзя все объединить в один статический блок?
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Wladyslaw Java Developer Master
4 ноября 2019, 19:10
добавлю еще что в такой нестатический блок инициализации, например, можно добавить логику которая тебе нужна при инициализации объекта, вне зависимости какой конструктор был вызван. Что-бы не дублировать общий код в каждом конструкторе. Это так, к примеру.
тут подробнее
+2
Alina
4 ноября 2019, 19:03
Потому что это статический блок
а это - анонимный блок
Другая сущность. На деле используется крайне редко, но тем не менее существует.
Анонимный блок используется для ограничения видимости переменных. Например,
+1
Oleg
2 апреля 2019, 16:00
Самая дебильная задача
0
--------Master
2 апреля 2019, 15:52решение
Потому, что статический блок выполняется один раз при загрузке класса, а блок инициализации - при создании каждого объекта.
+2