Данный пример увидел в статье
https://habr.com/ru/company/funcorp/blog/425943/ . Автор статьи написал, что не знает, каким образом константа (val) меняет значение, и что, вероятно, это ошибка. Может это глупый вопрос, но очень хочу разобраться что конкретно происходит с переменной при создании нового объекта, как val testParam принимает различные значения.
Программа выводит:
"in showTestParam testParam = some string"
"in constructor testParam = after"
class MyClassB {
init {
testParam = "some string"
showTestParam()
}
init {
testParam = "new string"
}
val testParam: String = "after"
constructor(){
println("in constructor testParam = $testParam")
}
fun showTestParam(){
println("in showTestParam testParam = $testParam")
}
}
fun main() {
val classB = MyClassB()}