Первичный конструктор и свойства
Первичный конструктор также может использоваться для определения свойств:
Свойства определяются как и параметры, при этом их определение начинается с ключевого слова val (если их не планируется изменять) и var (если свойства должны быть изменяемыми)
И в этом случае нам уже необязательно явным образом определять эти свойства в теле класса, так как их уже определяет конструктор.
И при вызове конструктора этим свойствам автоматически передаются значения: People("Светлана", 33)
Обратите внимание, что если в классе определен только первичный конструктор, то фигурные скобки, которые оформляют тело класса, использовать необязательно.
Хотя мы могли бы написать и так:
Инициализатор
Кроме конструкторов для инициализации объектов мы можем использовать блоки инициализаторов.
Они представляют блок кода в фигурных скобках, перед которым идет слово init :
Здесь в классе People определен следующий блок инициализатора:
В данном случае блок инициализатора применяется для установки переменных. Так, мы можем определить здесь проверку входных значений, как в случае с параметром _age. Можно определить какую-то другую логику, которая должна выполняться при инициализации объекта.
Стоит отметить, что в классе может быть определено одновременно несколько блоков инициализатора.