构造函数
在本章中,我们将学习Kotlin中的构造函数。Kotlin有两种类型的构造函数,一种是主构造函数,另一种是辅助构造函数。一个Kotlin类可以具有一个主构造函数和一个或多个辅助构造函数。Java构造函数会初始化成员变量,但是,在Kotlin中,主要构造函数会初始化类,而辅助构造函数则有助于在初始化时包含一些额外的逻辑。可以在类标头级别上声明主构造函数,如以下示例所示。
class Person(val firstName: String, var age: Int) {
// class body
}
在上面的示例中,我们在括号内声明了主要构造函数。在这两个字段中,名字被声明为“val”是只读的,而字段age可以被编辑。在下面的示例中,我们将使用主构造函数。
fun main(args: Array<String>) {
val person1 = Person("jc2182.com", 15)
println("First Name = ${person1.firstName}")
println("Age = ${person1.age}")
}
class Person(val firstName: String, var age: Int) {
}
尝试一下
上面的代码将自动初始化两个变量,并在浏览器中提供以下输出。
First Name = jc2182.com
Age = 15
如前所述,Kotlin允许为您的类创建一个或多个辅助构造函数。此辅助构造函数是使用“constructor”关键字创建的。每当您想在Kotlin中创建多个构造器,或者想要在主构造器中包含更多逻辑而又不能这样做时,这是必需的,因为该主构造器可能被其他类调用。看下面的示例,在该示例中,我们创建了辅助构造函数,并使用上面的示例来实现相同的构造函数。
fun main(args: Array<String>) {
val HUman = HUman("jc2182.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!!!jc2182.comWelcome to the example of Secondary constructor, Your Age is-25