1、 主构造函数
主构造器中不能包含任何代码,初始化代码可以放在初始化代码段中,初始化代码段使用 init 关键字作为前缀。
class ConsClaz constructor(name: String) {
init {
println("Name is : $name")
}
}
2、次构造函数
可以理解成二级构造函数,主要有以下三种方式
class Person() {
constructor(parent: Person) : this() {
}
}
class Person2(val name: String) {
constructor(name: String, age: Int) : this(name) {
//初始化...
}
}
class Person {
constructor(parent: Person) {
parent.children.add(this)
}
}
3、私有化的构造函数
class Person private constructor() {
}
注意:在 JVM 虚拟机中,如果主构造函数的所有参数都有默认值,编译器会生成一个附加的无参的构造函数,这个构造函数会直接使用默认值。这使得 Kotlin 可以更简单的使用像 Jackson 或者 JPA 这样使用无参构造函数来创建类实例的库。
class Customer(val customerName: String = "")