Sobes.tech
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.

  1. 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
    }
    
  2. 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-chave this().

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