我已经开始学习 Kotlin 了。我想知道之间的区别init
块和constructor
。
这之间有什么区别以及我们如何利用它来改进?
class Person constructor(var name: String, var age: Int) {
var profession: String = "test"
init {
println("Test")
}
}
The init块将在主构造函数之后立即执行。初始化块实际上成为主构造函数的一部分。
The 构造函数是辅助构造函数。对主构造函数的委托作为辅助构造函数的第一个语句发生,因此所有初始化程序块中的代码都在辅助构造函数主体之前执行。
Example
class Sample(private var s : String) {
init {
s += "B"
}
constructor(t: String, u: String) : this(t) {
this.s += u
}
}
认为您初始化了 Sample 类
Sample("T","U")
您将在变量处得到字符串响应s as "TBU"
.
Value "T"
被分配给s来自主构造函数 of Sample class.
然后立即将init块开始执行;它会添加"B"
to the s多变的。
接下来是次要构造函数转动;现在"U"
被添加到s变量变为"TBU"
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)