Kotlin 构造函数
在 Kotlin 中,构造函数用于初始化类的对象。Kotlin 有两种类型的构造函数:主构造函数和次构造函数。
主构造函数
主构造函数是类头的一部分,通常与类定义放在一起。它可以简洁地声明属性并初始化它们。
class Person(val name: String, var age: Int)
在上面的例子中,Person
类的主构造函数接收两个参数,name
和 age
,并用于初始化相应的属性。
初始化代码
如果需要在主构造函数中添加额外的初始化代码,可以使用 init
块:
class Person(val name: String, var age: Int) {
init {
println("Person is created with name $name and age $age")
}
}
次构造函数
次构造函数提供了一个备用的构造对象的方法,可以通过 constructor
关键字定义。次构造函数可以覆盖或补充主构造函数。
class Person(val name: String) {
var age: Int = 0
constructor(name: String, age: Int) : this(name) {
this.age = age
}
}
在上面的例子中,Person
类有一个主构造函数接收 name
,还有一个次构造函数接收 name
和 age
。次构造函数通过调用 this(name)
委托给了主构造函数,也可在次构造函数中进行额外的初始化。
关键点
- 主构造函数简洁且直接用于为属性赋值。
init
块用于添加主构造函数的初始化逻辑。- 次构造函数提供额外的构造选项,可以通过
this
委托给其他构造函数。 - 当类有主构造函数时,次构造函数必须调用主构造函数(直接或间接)。
使用这两种构造函数可以根据需求灵活地初始化 Kotlin 中的类实例。