Kotlin 构造函数

  • 构造函数

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