// Kotlin 的构造函数可以写在类头中,跟在类名后面。
// 这种写法声明的构造函数,我们称之为主构造函数。
class Person(private val name: String) {
fun sayHello() {
// 主构造函数中声明的参数,它们默认属于类的公有字段。
println("hello $name")
}
}
// 与上面的作用一致:声明主构造函数
class Person constructor(private val name: String) {
fun sayHello() {
println("hello $name")
}
}
/// 与上面的作用一致,修饰符默认是:public
class Person public constructor(private val name: String) {
fun sayHello() {
println("hello $name")
}
}
// 如果有注解是在主构造函数上,必须带上关键字:constructor
class Person @TargetApi(28) constructor(private val name: String) {
fun sayHello() {
println("hello $name")
}
}
// 如果有额外的代码需要在构造方法中执行,需要放到 init 代码块中执行
class Person(private var name: String) {
init {
name = "Hello World"
}
internal fun sayHello() {
println("hello $name")
}
}
次级构造函数
代码语言:txt复制
class Person(private var name: String) {
private var description: String? = null
init {
name = "Hello World"
}
// 如有主构造函数,则要继承主构造函数
constructor(name: String, description: String) : this(name) {
this.description = description
}
internal fun sayHello() {
println("hello $name")
}
}