gpt4 book ai didi

kotlin - Kotlin-如何在伴随对象中使用类属性

转载 作者:行者123 更新时间:2023-12-02 13:38:29 26 4
gpt4 key购买 nike

我想知道是否可以在同伴对象内使用类的属性。例如下面的实例:

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()。
我想知道是否有这些操作的替代方法,或者无论如何都没有伴随对象的意义

最佳答案

class嵌套在doesn't automatically give you access to an instance of this class, unlike in Java类中。对于object,包括companion object,也是如此。 companion除了让Person1之外,还允许您将此对象称为Person1.myc

您的fun constructor不是构造函数;这只是一种称为constructor的方法。

关于kotlin - Kotlin-如何在伴随对象中使用类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50642249/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com