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