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