0Pricing
Android Academy · Lección

Clases de datos

Clases concisas para almacenar datos

Clases de datos es una lección gratuita de Android Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Android Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Android Academy incluye 4 lecciones en total.

¿Qué es una data class?

Una data class es una clase diseñada para almacenar datos. Kotlin genera automáticamente métodos útiles para ella.

Se declara escribiendo data antes de class.

Declarar una data class

Una data class necesita al menos un parámetro en su constructor principal, marcado con val o var.

Aquí se muestra un User que almacena un nombre y una edad.

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

fun main() {
    val u = User("Ada", 30)
    println(u.name)
}

Un toString legible

Una clase normal imprime una dirección críptica. Una data class genera un toString claro que muestra cada propiedad.

Esto facilita mucho la depuración.

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

fun main() {
    val u = User("Ada", 30)
    println(u)
}

Comparar con equals

Las data classes se comparan por contenido, no por identidad. Dos objetos con los mismos valores de propiedad son iguales mediante ==.

Una clase normal indicaría que son diferentes.

data class Point(val x: Int, val y: Int)

fun main() {
    val a = Point(1, 2)
    val b = Point(1, 2)
    println(a == b)
}

La función copy

La función copy generada crea un objeto nuevo a partir de uno existente. Puede cambiar solo las propiedades que especifique.

El original permanece sin cambios.

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

fun main() {
    val u = User("Ada", 30)
    val older = u.copy(age = 31)
    println(older)
}

Desestructuración

Las data classes admiten la desestructuración: desempaquetar propiedades en variables independientes en una sola línea.

El orden sigue el del constructor.

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

fun main() {
    val (name, age) = User("Sam", 25)
    println(name + " " + age)
}

Los valores predeterminados también funcionan

Al igual que cualquier constructor, los parámetros de una data class pueden tener valores predeterminados.

Esto permite omitir los campos que no se necesiten.

data class User(val name: String, val active: Boolean = true)

fun main() {
    val u = User("Lee")
    println(u)
}

hashCode para colecciones

Las data classes también generan hashCode, por lo que funcionan correctamente como claves en un Set o un Map.

Los objetos iguales producen el mismo hash, así que los duplicados se detectan.

data class Point(val x: Int, val y: Int)

fun main() {
    val set = setOf(Point(1, 1), Point(1, 1))
    println(set.size)
}

Cuándo usar data classes

Elija una data class cuando un objeto principalmente transporte valores en lugar de ofrecer un comportamiento complejo.

  • Respuestas de API
  • Estado de la interfaz de usuario en Android
  • Registros de bases de datos

Para objetos con mucha lógica, una clase normal es más adecuada.

Las data classes ahorran trabajo

Una sola palabra clave data le proporciona toString, equals, hashCode, copy y la desestructuración.

Es mucho código repetitivo que ya no tendrá que escribir ni mantener manualmente.

Data class frente a clase normal

Una clase normal se compara por identidad e imprime una referencia de memoria. Una data class se compara por contenido e imprime sus valores.

La palabra clave data es la que habilita todos estos comportamientos generados.

class Plain(val x: Int)
data class Smart(val x: Int)

fun main() {
    println(Plain(1) == Plain(1))
    println(Smart(1) == Smart(1))
}

Comprobación rápida

Compruebe lo que ha aprendido sobre las data classes.

Resumen

Ha aprendido que una data class genera automáticamente toString, equals, hashCode, copy y compatibilidad con la desestructuración.

Son ideales para objetos que transportan valores, como el estado de la interfaz de usuario y los modelos de API. Ya ha cubierto las funciones, las clases, los constructores y las data classes en Kotlin.

Preguntas frecuentes

¿La lección «Clases de datos» es gratis?

Sí — el texto completo de «Clases de datos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Android Academy, actualiza a CoddyKit PRO. El curso de Android Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Clases de datos»?

Clases concisas para almacenar datos Practicas Android Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Android Academy?

No se requiere experiencia previa. Android Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Clases de datos»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Android Academy?

Sí. Cada lección de Android Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Declarar funciones
  2. Clases y propiedades
  3. Constructores e init
  4. Clases de datos
← Volver a Android Academy