Junior
Fala sobre o objeto companion em Kotlin.
sobes.tech IA
Resposta da IA
companion object em Kotlin é usado para definir membros de classe (propriedades e funções) que são comuns a todas as instâncias dessa classe, bem como para acessá-los sem criar uma instância da classe. É essencialmente um equivalente aos membros estáticos em Java, mas implementado como um objeto dentro da classe.
Principais características:
- Instância única: Dentro da classe, pode haver apenas um
companion object. - Inicialização: É inicializado na primeira carga da classe.
- Acesso a membros privados: Tem acesso aos membros privados da classe externa.
- Nomeação: Por padrão, tem o nome
Companion, mas pode ser explicitamente nomeado. - Implementação de interfaces: Pode implementar interfaces.
Exemplo de uso:
class MyClass {
companion object {
const val TAG = "MyClass" // Constante
fun createInstance(): MyClass { // Método de fábrica
return MyClass()
}
}
fun doSomething() {
println("A fazer algo...")
}
}
fun main() {
println(MyClass.TAG) // Acesso ao membro do companion object
val instance = MyClass.createInstance() // Uso do método de fábrica
instance.doSomething()
}
Vantagens:
- Mais semântico: Permite agrupar membros "estáticos" relacionados em um só lugar.
- Flexibilidade: Pode implementar interfaces, o que é útil para padrões de projeto.
- Acesso a membros privados: Facilita a implementação de métodos de fábrica e singletons dentro da classe.