Sobes.tech
Junior — Middle

¿Cuál es la diferencia entre una data class y una clase estándar en un lenguaje de programación?

sobes.tech AI

Respuesta de la IA

En el lenguaje Kotlin (Android), la clase de datos (data class) es una clase especial diseñada para almacenar datos. La principal diferencia con una clase normal es que el compilador genera automáticamente varios métodos útiles para la data class:

  • equals() y hashCode() para comparar objetos por contenido,
  • toString() con una salida informativa,
  • copy() para crear copias con campos modificados,
  • componentes (component1(), component2(), etc.) para la destructuración.

Una clase normal no tiene estos métodos por defecto, y hay que escribirlos manualmente si se necesitan.

Ejemplo de data class:

data class User(val name: String, val age: Int)

val user1 = User("Alice", 30)
val user2 = user1.copy(age = 31)
println(user1) // User(name=Alice, age=30)

Por lo tanto, la data class es conveniente para modelos de datos donde la simplicidad y la comparación correcta de objetos son importantes.