Kotlin - Constructores

En este capítulo, aprenderemos sobre constructores en Kotlin. Kotlin tiene dos tipos de constructores: uno es elprimary constructor y el otro es el secondary constructor. Una clase de Kotlin puede tener un constructor principal y uno o más constructores secundarios. El constructor de Java inicializa las variables miembro, sin embargo, en Kotlin el constructor principal inicializa la clase, mientras que el constructor secundario ayuda a incluir algo de lógica adicional mientras inicializa la misma. El constructor principal se puede declarar a nivel de encabezado de clase como se muestra en el siguiente ejemplo.

class Person(val firstName: String, var age: Int) {
   // class body
}

En el ejemplo anterior, hemos declarado el constructor principal dentro del paréntesis. Entre los dos campos, el nombre es de solo lectura, ya que se declara como "val", mientras que la edad del campo se puede editar. En el siguiente ejemplo, usaremos el constructor principal.

fun main(args: Array<String>) {
   val person1 = Person("TutorialsPoint.com", 15)
   println("First Name = ${person1.firstName}")
   println("Age = ${person1.age}")
}
class Person(val firstName: String, var age: Int) {
}

El código anterior inicializará automáticamente las dos variables y proporcionará el siguiente resultado en el navegador.

First Name = TutorialsPoint.com
Age = 15

Como se mencionó anteriormente, Kotlin permite crear uno o más constructores secundarios para su clase. Este constructor secundario se crea utilizando la palabra clave "constructor". Es necesario siempre que desee crear más de un constructor en Kotlin o cuando desee incluir más lógica en el constructor principal y no puede hacerlo porque el constructor principal puede ser llamado por alguna otra clase. Eche un vistazo al siguiente ejemplo, donde hemos creado un constructor secundario y estamos usando el ejemplo anterior para implementar el mismo.

fun main(args: Array<String>) {
   val HUman = HUman("TutorialsPoint.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) {
   }
}

Note - Se puede crear cualquier cantidad de constructores secundarios, sin embargo, todos esos constructores deben llamar al constructor primario directa o indirectamente.

El fragmento de código anterior producirá el siguiente resultado en el navegador.

Hey!!! TutorialsPoint.comWelcome to the example of Secondary  constructor, Your Age is- 25