Skip to content

Objects

Los objetos en Quetzal permiten agrupar datos y comportamientos. Se definen con la palabra clave objeto seguida del nombre y un bloque de miembros.

objeto Usuario {
texto nombre
entero edad
Usuario(texto nombre, entero edad) {
ambiente.nombre = nombre
ambiente.edad = edad
}
texto obtener_nombre() {
retornar ambiente.nombre
}
}
  • Los atributos declarados fuera de privado o publico son públicos por defecto.
  • Los constructores usan el mismo nombre del objeto y no retornan valor explícito.
Usuario persona = nuevo Usuario("María", 30)
texto nombre = persona.obtener_nombre()
objeto Banco {
privado:
número var saldo = 0
número obtener_saldo_privado() {
retornar ambiente.saldo
}
publico:
Banco(número inicial) {
ambiente.saldo = inicial
}
número obtener_saldo() {
retornar ambiente.obtener_saldo_privado()
}
}
  • Los miembros dentro de privado solo están disponibles dentro del objeto.
  • Los miembros en publico pueden usarse desde cualquier parte.

Los miembros declarados con la palabra libre actúan como miembros estáticos: pueden invocarse sin crear una instancia y no acceden al estado del objeto instanciado.

objeto MatematicaBasica {
libre número PI = 3.14159
libre número sumar(número a, número b) {
retornar a + b
}
}
número resultado = MatematicaBasica.sumar(2, 3)
  • Los atributos son inmutables a menos que se declaren con var dentro del objeto.
  • Para modificar desde métodos públicos usa ambiente.
objeto Contador {
entero var valor = 0
vacio incrementar() {
ambiente.valor++
}
}

Lenguaje Quetzal no incluye herencia clásica. Recomienda composición: crea objetos que utilicen a otros internamente o expón funciones libres reutilizables.

Los objetos pueden exportarse desde un módulo y reutilizarse en otros archivos.

exportar {
Usuario,
Banco
}

Consulta las secciones de constructores y modificadores de acceso para profundizar en cada característica.