【发布时间】:2018-06-01 11:18:06
【问题描述】:
我想知道是否可以在伴生对象中使用类的属性。例如下面的例子:
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)
我无法通过 c1 或 c2 调用 changeAge() 函数。当 Person1 没有使用适当的构造函数实例化时,我可以使用 changeAge 的唯一地方是通过 Person1.changeAge() 。 我想知道这些操作是否有替代方法,或者无论如何都没有伴随对象的意义
【问题讨论】:
-
我真的很想知道你认为是什么是伴生对象。您所描述的是
Person类的成员函数的语义。
标签: kotlin