Вопрос в заголовке:
В Kotlin, если объект передается в новый экземпляр класса, а затем изменяются некоторые свойства, изменятся ли свойства исходного объекта?
Изображение У меня следующая ситуация:
class User{
var name: String = "initial name"
}
class UserHolder{
companion object{
var INSTANCE: User
}
}
class ClassA{
fun doStuff(){
val classB = ClassB(UserHolder.INSTANCE)
classB.changeUser()
val newName = UserHolder.INSTANCE.name // is it "initial name" or "My new name"?
}
}
class ClassB(private val user: User){
fun changeUser(){
user.name = "My new name"
}
}
Будет ли newName «начальным именем» или «Моим новым именем» и почему?
Я знаю, что если я передам объект в метод и изменим его свойства, то по возвращении свойства будут обновлены. Но почему это не работает с классами? Это потому, что мы пишем 'val user'?