Мне было интересно, могу ли я использовать свойство класса внутри объекта-компаньона.например, возьмем приведенный ниже пример:
class Person1(val name: String, var age: Int){
lateinit var surname: String
companion object myc{
var cname: String =""
var cage: Int = 0
fun constructor(cname: String, cage: Int){
this.cage = cage
this.cname = cname
}
fun changeAge(age: Int ?= 0){
// access to surname or name or age
}
}
}
я не могу получить доступ к любому из свойств класса Person1
и, например, допустим, что мы вызываем объект класса или компаньона какниже:
val c1 = Person1.myc.constructor("john",10)
val c2= Person1("jack",20)
Я не могу вызвать функцию changeAge () через c1 или c2.единственное место, где я могу использовать changeAge, - через Person1.changeAge (), когда Person1 не был создан с правильным конструктором.мне было интересно, есть ли альтернатива для этих действий или нет смысла иметь сопутствующие объекты в любом случае