Menu
Coddy logo textTech

Configuração do Projeto

Parte da seção Programação Orientada a Objetos do Journey de Lua da Coddy. Lição 55 de 70.

challenge icon

Desafio

Fácil

Vamos construir a base para um sistema de gerenciamento de formas! Este projeto crescerá ao longo das próximas lições, então começaremos configurando uma estrutura de arquivos organizada 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. Toda 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 exigindo 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().

Essa classe base servirá como classe 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 da entrada
local shapeName = io.read()

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

-- TODO: Imprima o resultado de chamar :getName() na sua forma

Todas as lições de Programação Orientada a Objetos

Pratique por conta própria: Compilador de Lua online