Kotlin - Construtores

Neste capítulo, aprenderemos sobre construtores em Kotlin. Kotlin tem dois tipos de construtor - um é oprimary constructor e o outro é o secondary constructor. Uma classe Kotlin pode ter um construtor primário e um ou mais construtores secundários. O construtor Java inicializa as variáveis ​​de membro, no entanto, em Kotlin, o construtor primário inicializa a classe, enquanto o construtor secundário ajuda a incluir alguma lógica extra ao inicializar a mesma. O construtor primário pode ser declarado no nível do cabeçalho da classe, conforme mostrado no exemplo a seguir.

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

No exemplo acima, declaramos o construtor primário entre parênteses. Entre os dois campos, o primeiro nome é somente leitura, pois é declarado como “val”, enquanto o campo idade pode ser editado. No exemplo a seguir, usaremos o construtor primário.

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) {
}

O trecho de código acima inicializará automaticamente as duas variáveis ​​e fornecerá a seguinte saída no navegador.

First Name = TutorialsPoint.com
Age = 15

Conforme mencionado anteriormente, o Kotlin permite criar um ou mais construtores secundários para sua classe. Este construtor secundário é criado usando a palavra-chave “construtor”. É necessário sempre que você deseja criar mais de um construtor em Kotlin ou sempre que deseja incluir mais lógica no construtor primário e você não pode fazer isso porque o construtor primário pode ser chamado por alguma outra classe. Dê uma olhada no exemplo a seguir, onde criamos um construtor secundário e estamos usando o exemplo acima para implementar o mesmo.

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 - Qualquer número de construtores secundários pode ser criado, no entanto, todos esses construtores devem chamar o construtor primário direta ou indiretamente.

O trecho de código acima produzirá a seguinte saída no navegador.

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