Kotlin学习笔记——构造函数的一些特性

1. 构造函数的分类

在 Kotlin 中,构造函数分为主构造函数次构造函数,一个类可以有一个主构造函数以及一个或多个次构造函数。主构造函数是类头的一部分:它跟在类名(与可选的类型参数)后。

class Person constructor(name: String) {
}

1.1 constructor关键字

如果主构造函数没有任何注解或者可见性修饰符,可以省略这个 constructor 关键字。

open class Person (var name: String) {

}

1.2 构造函数中定义属性

  • 只有在主构造函数中才能定义属性,次构造函数中不能定义属性(即次构造函数中不能使用varval)。

  • 父类中定义的属性,在子类的主构造函数中,不能使用varval修饰符。

  • 主改构造函数中定义的属性,如果没有指定访问修饰,只能在init模块中访问,且无法二次赋值;如果指定为val,可以在类中访问,无法二次赋值;如果指定为var,可以在类外部访问,可以多次赋值。

  • 每个次构造函数需要委托给主构造函数, 可以直接委托或者通过别的次构造函数间接委托(委托到同一个类的另一个构造函数用 this 关键字即可)

class Student(name: String, var age: Int) : Person(name) {

    var tel: String = ""
    var addr: String = ""

    public constructor(name: String, age: Int, addr: String, tel: String) : this(name, age) {
        this.tel = tel
    }
}

你可能感兴趣的:(Kotlin学习笔记)