Назад к вопросам
Junior
177
Где разрешена инициализация статических и нестатических полей?
Ответ от нейросети
sobes.tech AI
В Java инициализация статических и нестатических полей разрешена в разных местах:
-
Статические поля (static):
- Могут быть инициализированы прямо при объявлении в классе.
- Также могут быть инициализированы в статических блоках инициализации (
static { ... }).
-
Нестатические поля (instance):
- Могут быть инициализированы при объявлении в классе.
- Могут быть инициализированы в конструкторе класса.
- Могут быть инициализированы в нестатических блоках инициализации (
{ ... }).
Пример:
public class Example {
static int staticField = 10; // инициализация при объявлении
int instanceField = 5; // инициализация при объявлении
static {
staticField = 20; // статический блок инициализации
}
{
instanceField = 15; // нестатический блок инициализации
}
public Example() {
instanceField = 25; // инициализация в конструкторе
}
}
Таким образом, статические поля инициализируются один раз при загрузке класса, а нестатические — при создании каждого объекта.