Capítulo 14 – Data Classes en Kotlin

curso android en kotlin

Data Classes

Una data class es una clase que contiene solamente atributos que quedemos guardar, por ejemplo datos de un superhéroe. Con esto conseguimos por ejemplo no tener varias variables “nombre1”, “nombre2” para almacenar todos los superhéroes con los que vamos a trabajar.

Generando nuestra Data Class

Vamos a crear un proyecto nuevo llamado “SuperHeroList” y dentro crearemos una nueva clase de kotlin (No una activity) llamada Superhero.

A simple vista podemos ver varias cosas, la primera que a diferencia de una clase normal esta no lleva llaves y la clase va precedida por “data”. Esto le dice a Kotlin que esta clase va a tener por defecto una serie de funciones (aunque no vamos a tener que generarlas nosotros, lo hará el propio lenguaje por detrás) que podremos usar para rellenar dichos campos.  La idea es tener un objeto Superhero por cada superhéroe que tengamos. Un objeto es simplemente la instancia de una clase.

Creando objetos Superhero

Aunque la clase parezca muy sencilla, por detrás nos ha generado funciones para poder recuperar el valor de cada uno de los atributos, sustituirlos, compararlos…

Lo primero que haremos será crear nuestro primer objeto. Para generarlo usaremos el constructor por defecto que trae la clase. Un constructor es una función que se llama automáticamente cuando instanciamos el objeto, y su única función es asignar un valor a cada uno de los parámetros.

Hemos creado un objeto de la clase Superhero llamado batman. Para instanciarlo, tenemos que pasar entre paréntesis cada uno de los valores para cada atributo.

Trabajando con Batman

Ahora que tenemos el objeto batman, podemos acceder a cualquiera de sus atributos para recuperar el valor o cambiarlo.

Objetos inmutables

Supongamos que no queremos que esos objetos puedan ser cambiados, es información verídica que no requiere de cambio alguno. Para ello debemos ir a la data class y cambiar var por val.

Ahora una vez creemos el objeto solo se podrá cambiar la foto. Si pasáramos todos los campos a val tendríamos un objeto inmutable por lo que no podríamos usar por ejemplo el batman.realName = “Nuevo nombre”.

Si quisiéramos modificar a batman podríamos usar la función Copy() para crear un nuevo objeto con algún atributo distinto.

Ahora si hacemos un toString() veremos que todos los campos son iguales excepto el atributo superhero.

Recuperación de parámetros

Por defecto, en cada data class, kotlin nos genera un componentN() para cada uno de los parámetros.

También podemos almacenar todos los parámetros de un objeto de golpe.

Lista de superhéroes

Para acabar vamos a generar una lista de superheroes, que la usaremos en el siguiente capítulo para nuestra primera lista.

Con esto tenemos una lista de superhéroes, en la que podríamos filtrar por ejemplo por compañía o ir añadiendo más en el futuro.

Comparte 🙂
0

Un comentario sobre “Capítulo 14 – Data Classes en Kotlin

  1. Pingback: Capítulo 15 - Recyclerview en Kotlin - Curso Kotlin Para android

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *