Каким ключевым словом обозначается поле в конструкторе класса которое используется только в блоке init

«Каким ключевым словом обозначается поле в конструкторе класса которое используется только в блоке init» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

val или var перед параметром конструктора делает его свойством класса. Если ключевое слово отсутствует — параметр доступен только в блоке init и при объявлении других свойств.

Пример:

class User(name: String, val age: Int) {
    init {
        println("Name: $name") // name доступен только здесь
    }
    // age доступен везде как свойство
}

Здесь name — параметр конструктора без свойства, age — свойство класса.