Sobes.tech
Back to questions
Junior
176

Где разрешена инициализация статических и нестатических полей?

Answer from AI

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;      // инициализация в конструкторе
    }
}

Таким образом, статические поля инициализируются один раз при загрузке класса, а нестатические — при создании каждого объекта.