Junior
Como implementar vários construtores numa única classe em Kotlin?
sobes.tech IA
Resposta da IA
Para criar múltiplos construtores em Kotlin, utiliza-se o construtor primário e, se necessário, um ou vários construtores secundários.
O construtor primário é declarado diretamente na assinatura da classe:
class MyClass(primaryParam1: String, primaryParam2: Int) {
// Corpo da classe
}
Os construtores secundários são declarados usando a palavra-chave constructor:
class MyClass {
// Construtor primário (implícito ou explícito)
constructor(param1: String) {
// Lógica do construtor secundário 1
}
constructor(param1: String, param2: Int) {
// Lógica do construtor secundário 2
}
}
Se a classe tiver um construtor primário, cada construtor secundário deve delegar a chamada ao construtor primário, usando a palavra-chave this():
class MyClass(primaryParam: String) {
constructor(secondaryParam: Int) : this(secondaryParam.toString()) {
// Lógica do construtor secundário
}
}
Também é possível ter vários construtores secundários delegando ao construtor primário ou a outros construtores secundários (seguindo a hierarquia de delegação):
class MyClass(primaryParam: String) {
constructor(param1: String, param2: Int) : this(param1) {
// Lógica do construtor secundário 1
}
constructor(param1: String, param2: Int, param3: Boolean) : this(param1, param2) {
// Lógica do construtor secundário 2
}
}
Pontos importantes:
- O corpo do construtor primário é executado antes do corpo dos construtores secundários.
- As propriedades declaradas na assinatura do construtor primário podem ser acessíveis no corpo dos construtores secundários.
- Em Kotlin, recomenda-se usar o construtor primário e, sempre que possível, evitar construtores secundários, preferindo argumentos nomeados ou métodos de fábrica.