В Kotlin классы могут иметь первичный и один или несколько вторичных конструкторов. Инициализаторы — это блоки кода init, которые выполняются в порядке их объявления после первичного конструктора (если он есть) или после вторичного конструктора, если первичного нет.
Объявляется непосредственно в заголовке класса. Он может содержать параметры, которые используются для инициализации свойств.
kotlin
Объявляются с ключевым словом constructor и всегда должны делегировать вызов другому конструктору того же класса, либо первичного (через this), либо другого вторичного.
kotlin
init последовательно.Пример порядка выполнения:
kotlin
Вывод:
plaintext
Даже если вызывается вторичный конструктор, блоки init выполняются всегда перед его телом. Это гарантирует, что основная инициализация объекта завершена до выполнения специфического кода вторичного конструктора.
Инициализаторы незаменимы для выполнения логики, которая должна быть выполнена при создании любого экземпляра класса, независимо от того, какой конструктор используется. Например, для проверки входных данных или настройки состояния объекта.