[Kotlin] 构造函数总结

2021-03-30 14:26:00 浏览数 (1)

主构造函数
代码语言:txt复制
// 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")
    }
}

0 人点赞