← Todos los tutoriales
first-steps 7 min

Clases: Agrupar Datos y Comportamiento

Las funciones te permiten reutilizar código. Las clases te permiten agrupar datos y funciones relacionados. Piensa en una clase como un plano — define cómo es algo y qué puede hacer, luego crea tantas instancias como necesites.

class Person
    string name
    integer age

    constructor(string personName, integer personAge)
        name = personName
        age = personAge

    functions:
        string introduce()
            return "Hi, I'm {name} and I'm {age} years old."

start:
    Person alice = Person("Alice", 28)
    Person bob = Person("Bob", 35)

    print(alice.introduce())
    print(bob.introduce())
    print(alice.name)
Hi, I'm Alice and I'm 28 years old.
Hi, I'm Bob and I'm 35 years old.
Alice

El constructor se ejecuta cuando creas una nueva instancia y configura los valores iniciales. Accede a campos y métodos con notación de punto — alice.name, alice.introduce().

Las clases pueden construirse unas sobre otras mediante herencia:

class Animal
    string name

    constructor(string animalName)
        name = animalName

    functions:
        string describe()
            return "I am {name}."

class Dog is Animal
    string breed

    constructor(string dogName, string dogBreed)
        base(dogName)
        breed = dogBreed

    functions:
        string describe()
            return "I am {name}, a {breed}."

start:
    Dog rex = Dog("Rex", "Labrador")
    print(rex.describe())
    print(rex.name)
I am Rex, a Labrador.
Rex

Dog is Animal significa que Dog obtiene todo lo que tiene Animal. base(dogName) llama al constructor del padre. Luego Dog agrega su propio campo breed y sobreescribe describe().

Resumen rápido

  • Una clase agrupa campos relacionados (datos) y funciones (comportamiento)
  • constructor(params) se ejecuta cuando creas una nueva instancia
  • Accede a campos y métodos con notación de punto: alice.name, alice.introduce()
  • class Dog is Animal — Dog hereda todo de Animal
  • base(args) llama al constructor padre — requerido al usar herencia
  • Sobreescribe un método declarándolo de nuevo en la clase hija
¡Copiado!