Junior — Middle
Pode explicar as diferenças entre uma classe normal e uma data class na linguagem de programação?
sobes.tech IA
Resposta da IA
Em linguagens de programação como Kotlin, uma classe normal e uma data class diferem no fato de que a data class é destinada ao armazenamento de dados e gera automaticamente métodos úteis.
Principais diferenças entre uma data class e uma classe normal:
- Geração automática de métodos:
equals(),hashCode(),toString(),copy(), bem como componentes para destruição. - Construtor com parâmetros: a data class deve ter pelo menos um parâmetro no construtor primário.
- Uso: a data class é conveniente para modelos de dados onde a semântica de igualdade por conteúdo é importante.
Exemplo em Kotlin:
data class User(val name: String, val age: Int)
val user1 = User("Alice", 30)
val user2 = User("Alice", 30)
println(user1 == user2) // true, comparação por conteúdo
println(user1) // User(name=Alice, age=30)
val user3 = user1.copy(age = 31) // cria um novo objeto com idade alterada
Em uma classe normal, esses métodos precisam ser implementados manualmente, o que aumenta o código e a probabilidade de erros.