在Kotlin中,构造函数的规范如下:
- 构造函数名称必须与类名相同。
- 如果类没有显式定义构造函数,编译器会自动生成一个默认的无参构造函数。
- 如果类显式定义了构造函数,那么必须使用
constructor
关键字。 - 构造函数可以带有参数,参数类型和数量应与主构造函数中的属性相匹配。
- 构造函数可以调用其他构造函数,这可以通过
this()
关键字实现。 - 构造函数可以初始化属性,可以使用
init
代码块。 - 如果类有多个构造函数,它们之间可以使用
secondary constructor
关键字进行区分。 - 构造函数不能被继承,但子类可以通过
super
关键字调用父类的构造函数。 - 构造函数可以被重载,即可以有多个具有不同参数列表的构造函数。
以下是一个Kotlin类的示例,其中包含一个主构造函数和一个带有参数的次构造函数:
class Person(val name: String, val age: Int) { // 主构造函数 constructor(name: String) : this(name, 0) { // 次构造函数,调用主构造函数并初始化age为0 } }
在这个示例中,我们定义了一个名为Person
的类,它具有两个属性:name
和age
。我们为主构造函数提供了一个带有name
和age
参数的参数列表,并为次构造函数提供了一个仅包含name
参数的参数列表。次构造函数使用this()
关键字调用主构造函数,并将age
初始化为0。