Я программист на Java, в настоящее время читаю книгу GoF по шаблонам проектирования, где приведены примеры в C ++ и синтаксисе Smalltalk. Я столкнулся с определенным синтаксисом в C ++, который я обнаружил, чтобы называться список инициализации членов . Из приведенных ответов кажется, что использование списка инициализации членов — это хорошая практика (гораздо более эффективная), чем использование присваиваний для переменных членов. Есть ли что-то похожее в Java? Если нет, то должна быть веская причина, почему Java-дизайнеры не включили эту функцию. Что ты думаешь об этом?
Причины, почему это необходимо в C ++, к счастью, не относятся к Java.
Поля являются только ссылками или примитивами, поэтому вам не нужно беспокоиться о том, что вы создаете объекты полей и выполняете над ними операции присваивания.
Java позволяет назначать конечные поля только один раз в теле конструктора (хотя спецификация этого довольно многословна).
Нет, вам нужно инициализировать элементы в их объявлении, конструкторе (ах) или в методе инициализации, вызываемом из конструкторов.
(Предполагая, что членам нужна инициализация сверх их значений по умолчанию.)