Clases de datos, objetos y scripts
En Kotlin, las data classes, las object classes y los companion objects son conceptos que proporcionan diferentes formas de estructurar y organizar el código de manera más eficiente, cada uno con su propia utilidad.
Clases de datos
Las data classes son clases especiales cuyo propósito principal es contener datos. Kotlin simplifica la creación de clases de datos mediante las data classes
, proporcionando automáticamente métodos comunes como toString()
, equals()
, hashCode()
y copy()
, basándose en los atributos de la clase.
Características de las data classes
:
Deben tener al menos un parámetro en el constructor primario.
Kotlin genera automáticamente funciones como
toString()
,equals()
,hashCode()
ycopy()
.Los parámetros del constructor primario se usan para las propiedades de la clase (val o var).
Las data classes
son muy útiles para modelar datos y simplifican mucho el código necesario para trabajar con ellos, ya que no tienes que escribir manualmente los métodos básicos.
Estas clases son el equivalente de los POJOs de Java, que son las clases de datos en las que debíamos generar manualmente constructores, getter, setters, hashCode, equals y toString.
Object Classes
Un object class en Kotlin se usa para crear objetos singleton, es decir, clases de las cuales solo puede existir una única instancia. Esto es útil para casos donde necesitas tener una única instancia compartida por todo el programa, como en patrones de diseño como Singleton o para almacenar constantes y funciones relacionadas.
Algunas de sus características son:
Se inicializa de manera perezosa (lazy), es decir, solo cuando se accede por primera vez.
Puede contener propiedades, métodos y bloques de inicialización.
No puedes crear múltiples instancias, ya que es un singleton.
En este ejemplo, Contador
es un singleton, por lo que siempre se accede a la misma instancia.
Companion Object
Un companion object es una manera de definir métodos y propiedades estáticas dentro de una clase. Los companion objects son objetos que actúan como miembros estáticos de una clase, y puedes acceder a ellos sin necesidad de crear una instancia de la clase.
Algunas de sus características son:
Solo puede haber un companion object por clase.
Permite definir miembros (funciones o propiedades) a nivel de clase (similares a los estáticos en otros lenguajes como Java).
Se puede acceder directamente por el nombre de la clase o mediante el nombre del companion object (si se define).
Es el lugar para declarar constantes y métodos que en Java serían estáticos
Scripts
Un script es un conjunto de instrucciones o código que se ejecuta en un entorno de interpretación o compilación. Los scripts suelen ser utilizados para realizar tareas automatizadas, ejecutar procesos sencillos o probar funcionalidades sin necesidad de crear una aplicación completa.
En Kotlin, además de las aplicaciones completas, también es posible escribir scripts. Un script de Kotlin se ejecuta sin tener que crear una clase o una función principal explícita como en otros lenguajes, lo que facilita escribir pequeños fragmentos de código de manera rápida.
Extensión del archivo: Los scripts en Kotlin tienen la extensión
.kts
en lugar de.kt
. Esto indica que es un archivo de script y no un archivo estándar de Kotlin que necesita ser compilado como parte de un proyecto.Estructura de un script: A diferencia de un archivo Kotlin típico que necesita una clase y una función
main
, en un script de Kotlin puedes escribir directamente las instrucciones que quieres ejecutar.
Por ejemplo, podríamos crear el siguiente script llamado ejemplo.kts
Última actualización
¿Te fue útil?