Kotlin 构造函数是一种特殊的方法,用于初始化对象的状态
- 主构造函数:主构造函数是在类中定义的,没有返回类型,也不能有函数体。它用于初始化对象的主要属性。在类定义中,主构造函数前面的
constructor
关键字表示它是一个构造函数。
class MyClass(val name: String, val age: Int) { // 主构造函数 }
- 次构造函数:次构造函数是在类中定义的另一个构造函数,它有一个返回类型,可以有函数体。次构造函数通过
constructor
关键字定义,并且必须调用另一个构造函数(主构造函数或次构造函数)来初始化对象。
class MyClass(val name: String) { constructor(name: String, age: Int) : this(name) { // 次构造函数 } }
- 委托构造函数:委托构造函数是一种在一个构造函数中调用另一个构造函数的方法。这样可以避免代码重复,并确保所有构造函数都遵循相同的初始化逻辑。委托构造函数使用
this()
关键字调用另一个构造函数。
class MyClass(val name: String) { constructor(name: String, age: Int) : this(name) { // 初始化其他属性 } }
- 构造函数参数:构造函数可以接受参数,以便在创建对象时初始化属性。参数可以是基本类型、引用类型或数组。在类定义中,使用
constructor
关键字定义构造函数,并在括号内声明参数。
class MyClass(val name: String, val age: Int) { // 构造函数 } // 创建对象时传递参数 val myObject = MyClass("John", 30)
- 默认参数值:在 Kotlin 中,可以为构造函数的参数指定默认值。这样,在创建对象时,如果没有传递该参数,将使用默认值。
class MyClass(val name: String, val age: Int = 18) { // 构造函数 } // 使用默认参数值创建对象 val myObject1 = MyClass("John") // age 使用默认值 18 val myObject2 = MyClass("John", 25) // 传递 age 参数