我不了解this
的使用以及如何创建对象或调用构造函数以及以下代码中发生的事情。
class Person {
var children: MutableList<Person> = mutableListOf<Person>();
constructor(parent: Person) {
parent.children.add(this)
}
}
class Person(val name: String) {
var children: MutableList<Person> = mutableListOf<Person>();
constructor(name: String, parent: Person) : this(name) {
parent.children.add(this)
}
}
答案 0 :(得分:0)
: this(...)
调用意味着调用另一个构造函数,因此每个对象也都是使用主要构造函数构造的。
class Person /* a */ (val name: String) {
var children: MutableList<Person> = mutableListOf<Person>();
/* b */ constructor(name: String, parent: Person) : this(name) {
parent.children.add(this)
}
}
在此示例中,在a
之后有主要构造函数,在b
之后有次要构造函数,因此有两种实例化此类的方法。
Person("abc")
。 Person("abc", Person("dfg"))
,并确保将同时调用主构造函数和辅助构造函数。