Menu
Coddy logo textTech

Configuración del proyecto

Parte de la sección Object Oriented Programming del Journey de Lua de Coddy — lección 19 de 70.

challenge icon

Desafío

Fácil

¡Vamos a construir la base para un sistema de Gestión de Formas! Este proyecto crecerá a lo largo de las próximas lecciones, así que comenzaremos estableciendo una estructura de archivos limpia con una clase base Shape.

Crearás dos archivos para organizar tu código:

  • Shape.lua: Define una clase base Shape utilizando el patrón de prototipo. Cada forma tiene un atributo name (como "Circle" o "Rectangle"). Incluye un constructor :new(name) que acepte el nombre de la forma, y un método :getName() que lo devuelva.
  • main.lua: Da vida a tu clase Shape importando el módulo y creando una instancia de la forma. Lee un nombre de forma desde la entrada, crea una Shape con ese nombre y imprime el resultado de llamar a :getName().

Esta clase base servirá como padre para formas específicas como Rectangle y Circle en las próximas lecciones. Por ahora, concéntrate en estructurar correctamente la clase: la configuración de __index, el patrón del constructor y el método getter.

Entrada: Una sola línea que contiene el nombre de la forma (una cadena de texto).

Salida: El nombre de la forma devuelto por :getName().

Pruébalo tú mismo

-- Requerir el módulo Shape
local Shape = require('Shape')

-- Leer el nombre de la forma desde la entrada
local shapeName = io.read()

-- TODO: Crear una nueva instancia de Shape con el nombre dado

-- TODO: Imprimir el resultado de llamar a :getName() en tu forma

Todas las lecciones de Object Oriented Programming