Clases en Kotlin: máxima potencia con el mínimo esfuerzo (KDA 03)

Antonio Leiva
Antonio Leiva
3 min lectura

Las clases en Kotlin están simplificadas al máximo con el fin de escribir la mayor cantidad de código en el menor espacio posible.

Te voy a enseñar cómo trabajar con una clase en Kotlin de forma rápida.

https://youtu.be/PJG2k0MDK3o

Si quieres empezar hoy con Kotlin, echa un vistazo a las formaciones de DevExpert.

1. Declara la clase

class Person

Tan fácil como añadir la palabra reservada class y el nombre de la clase. No hace falta pongas llaves si no va a contener nada.

Spoiler: ¿Has visto que no lleva public delante? Eso es porque en Kotlin todo es público por defecto.

2. Inclúyele properties

En Kotlin no existen los campos como tal. Una clase tiene properties.

Una property vendría  sustituir a un campo + getter + setter, de tal forma que no necesitamos más que lo siguiente:

class Person {
    var name = "Name"
    var surname = "Surname"
}

Si quieres tener un setter personalizado, también puedes, por supuesto:

var name = "Name"
    set(value) {
        name = "Name: $value"
    }

Spoiler: como puedes ver, se pueden utilizar variables directamente en los Strings (?), sin necesidad de utilizar el típico String.format

¿Te has dado cuenta de la cantidad de código innecesario que evitas con esto? Te ahorras todos los getters y los setters si no son estrictamente necesarios.

3. Añade un constructor

Por defecto, sólo se utiliza un constructor por clase. Se pueden añadir varios, pero eso lo veremos en siguientes artículos.

Al haber sólo un constructor, esto simplifica mucho la nomenclatura:

class Person(val name: String, val surname: String)

¿Qué ocurrió aquí?

  1. ¡Desaparecieron las properties! En realidad siguen ahí, sólo que si anotas los parámetros del constructor con var o val, las properties se generan inline.

  2. El constructor se escribe justo después de la definición de la clase. No hace falta crear métodos extra y asignar los valores a las properties.

4. Ya puedes crear funciones dentro de la clase

Y utilizar las properties en ellas de la forma que quieras:

class Person(val name: String, val surname: String) {
    fun getFullName() = "$name $surname"
}

Como ves, las funciones tienen una forma muy contraída cuando se les puede asignar una valor directamente. Sin embargo, sigue existiendo una forma muy similar a la de Java:

fun getFullName(): String {
    return "$name $surname"
}

En ese caso, hay que especificar el tipo de retorno.

5. Todo en Kotlin es cerrado por defecto

Es decir, que no se puede extender, ni los hijos (en caso de que se permita la extensión) no pueden sobrescribir las funciones, a no ser que se indique con la palabra reservada open:

open class Person(val name: String, val surname: String)
class Cop(surname: String) : Person("Mr", surname)

¿Ves cómo se llama al constructor del padre? ¡Sencillo y limpio!

Conclusión

Si todo esto te apasiona tanto como a mí y quieres seguir aprendiendo Kotlin, echa un vistazo a las formaciones de DevExpert.

Laboratorio

Lo último que hemos probado con agentes

Probamos herramientas, modelos y flujos en proyectos reales, y contamos qué funciona y qué no. Sin humo.

Ir al blog
zsh — devexpert

$git log --oneline blog/

$ git show 7bb9632

commit 7bb9632

Autor: Antonio Leiva · 2026-10-19 · 8 min

Claude Code ya lee AGENTS.md, pero solo como plan B. Prueba controlada con una palabra clave por fichero: qué se carga al empezar, qué pasa con las subcarpetas, el global y los cuatro modos del plugin.

$ ▊