Ответ
val или var перед параметром конструктора делает его свойством класса. Если ключевое слово отсутствует — параметр доступен только в блоке init и при объявлении других свойств.
Пример:
class User(name: String, val age: Int) {
init {
println("Name: $name") // name доступен только здесь
}
// age доступен везде как свойство
}
Здесь name — параметр конструктора без свойства, age — свойство класса.