Наименование конструкции
private final EventManager eventManager;
private final DateManager dateManager;
private final UserManager userManager;
Как называется эта конструкция? Это объект или что-то еще? EventManager, DateManager, UserManager являются именами классов.
3 ответа
Это называется объявлением поля. Вы заявляете, что эти [частные, конечные] поля существуют с этими именами и типами.
Объявление постоянных или неизменных полей типов EventManager
, DateManager
а также UserManager
, Поля объявлены final
может быть установлен только один раз конструктором, после этого они не могут быть изменены.
Вы объявляете поля (локальные переменные класса). Они неинициализированы (объекты еще не существуют, поэтому конструктор не был вызван). Они устанавливаются как окончательные, что означает, что им может быть присвоено значение только один раз, а вы этого еще не сделали (поэтому вы должны сделать это в конструкции).
Если вы хотите определить их и вызвать их конструктор, это будет выглядеть так
private final EventManager eventManager = new EventManager();
Это вызвало бы конструктор по умолчанию, если он есть, и инициализировал поле. Опять же, поскольку поле помечено как окончательное и поскольку в приведенном выше примере оно объявляется со значением, вы не можете снова установить это значение, даже в конструкторе.