Menu
Coddy logo textTech

Configuração do Projeto

Parte da seção Object Oriented Programming do Journey de Lua da Coddy — lição 19 de 70.

challenge icon

Desafio

Fácil

Vamos construir a base para um sistema de Gerenciador de Formas! Este projeto crescerá ao longo das próximas lições, então começaremos configurando uma estrutura de arquivos limpa com uma classe base Shape.

Você criará dois arquivos para organizar seu código:

  • Shape.lua: Defina uma classe base Shape usando o padrão de protótipo. Cada forma tem um atributo name (como "Circle" ou "Rectangle"). Inclua um construtor :new(name) que aceite o nome da forma e um método :getName() que o retorne.
  • main.lua: Dê vida à sua classe Shape importando o módulo e criando uma instância de forma. Leia um nome de forma da entrada, crie uma Shape com esse nome e imprima o resultado da chamada de :getName().

Esta classe base servirá como pai para formas específicas como Rectangle e Circle nas próximas lições. Por enquanto, concentre-se em acertar a estrutura da classe — a configuração de __index, o padrão do construtor e o método getter.

Entrada: Uma única linha contendo o nome da forma (uma string).

Saída: O nome da forma retornado por :getName().

Experimente você mesmo

-- Requer o módulo Shape
local Shape = require('Shape')

-- Lê o nome da forma a partir da entrada
local shapeName = io.read()

-- TODO: Criar uma nova instância de Shape com o nome fornecido

-- TODO: Imprimir o resultado da chamada :getName() na sua forma

Todas as lições de Object Oriented Programming