Junior
Como implementar vários construtores numa única classe em Kotlin?
sobes.tech IA
Resposta da IA
Em Kotlin, uma classe pode ter um construtor primário e um ou vários construtores secundários.
-
Construtor primário: É definido na cabeça da classe. Pode ter parâmetros.
class MinhaClasse(private val algumaPropriedade: String) { // Construtor primário com parâmetro // Corpo da classe } -
Construtores secundários: São declarados com a palavra-chave
constructor. Se a classe tiver um construtor primário, cada construtor secundário deve delegar direta ou indiretamente a ele usando a palavra-chavethis().class OutraClasse(private val valorPrimario: Int) { // Construtor primário constructor(outraValor: String) : this(outraValor.length) { // Construtor secundário delegando ao primário // Lógica do construtor secundário println("Criado com string: $outraValor") } constructor(valor1: Int, valor2: Int) : this(valor1 + valor2) { // Outro construtor secundário // Lógica println("Criado com dois ints: $valor1, $valor2") } }
Na ausência de um construtor primário, os construtores secundários não são obrigados a delegar a outros construtores da mesma classe (mas podem).
class ClasseSemPrimario {
constructor(valor: Int) {
println("Criado com int: $valor")
}
constructor(valor: String) {
println("Criado com string: $valor")
}
}