Kotlin 构造函数
在本章中,我们将学习 Kotlin 中的构造函数。 Kotlin 有两种类型的构造函数——一种是主构造器另一个是二级构造函数.一个 Kotlin 类可以有一个主构造函数和一个或多个辅助构造函数。 Java 构造函数初始化成员变量,然而,在 Kotlin 中,主构造函数初始化类,而辅助构造函数有助于在初始化时包含一些额外的逻辑。可以在类头级别声明主构造函数,如下例所示。
class Person(val firstName: String, var age: Int) { // 类体 }
在上面的例子中,我们在括号内声明了主构造函数。这两个字段中,first name 是只读的,因为它被声明为“val”,而字段age 是可以编辑的。在下面的示例中,我们将使用主构造函数。
fun main(args: Array<String>) { val person1 = Person("Newbiego.com", 15) println("First Name = ${person1.firstName}") println("Age = ${person1.age}") } class Person(val firstName: String, var age: Int) { }
上面这段代码将自动初始化这两个变量并在浏览器中提供以下输出。
First Name = Newbiego.com Age = 15
如前所述,Kotlin 允许为你的类创建一个或多个二级构造函数。这个二级构造函数是使用“constructor”关键字创建的。每当你想在 Kotlin 中创建多个构造函数时,或者当你想在主构造函数中包含更多逻辑时都需要它,而你不能这样做,因为主构造函数可能会被其他某个类调用。看看下面的例子,我们创建了一个二级构造函数,并使用上面的例子来实现它。
fun main(args: Array<String>) { val HUman = HUman("Newbiego.com", 25) print("${HUman.message}"+"${HUman.firstName}"+ "Welcome to the example of Secondary constructor, Your Age is-${HUman.age}") } class HUman(val firstName: String, var age: Int) { val message:String = "Hey!!!" constructor(name : String , age :Int ,message :String):this(name,age) { } }
注意: 可以创建任意数量的二级构造函数,但是,所有这些构造函数都应该直接或间接调用主构造函数。
上面的代码将在浏览器中产生以下输出。
Hey!!! Newbiego.comWelcome to the example of Secondary constructor, Your Age is- 25