Data classes en Kotlin

https://dystopianapps.com/data-classes-en-kotlin

Hoy os traigo un nuevo tutorial en el que os voy a hablar de las data classes en Kotlin. Una data class es una clase que nos sirve para almacenar datos que queremos conservar por ejemplo datos de una persona.

Creando una data class.

Vamos a crear un proyecto nuevo llamado 2PersonasList” y dentro crearemos una nueva clase de kotlin llamada Persona.

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 Persona por cada persona que tengamos. Un objeto es simplemente la instancia de una clase.

Creando objetos persona

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.

Trabajando con los objetos persona

Ahora que tenemos el objeto Antonio, 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.

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

Lista de personas

Para acabar vamos a generar una lista de personas, que la usaremos en el siguiente tutorial para nuestra primera lista.

 

Creado por

Iván Fernández

Deja un comentario

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

Este sitio utiliza cookies para mejorar los servicios que se ofrecen. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies

ACEPTAR
Aviso de cookies