Menu
Coddy logo textTech

Recapitulação - Fábrica de Carros

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

challenge icon

Desafio

Fácil

Vamos construir uma classe Car completa que reúne tudo o que você aprendeu neste capítulo! Você criará um sistema de fábrica de carros onde cada carro tem seu próprio modelo e cor, demonstrando a organização adequada de módulos e instâncias independentes.

Você organizará seu código em dois arquivos:

  • Car.lua: Defina sua classe Car seguindo o padrão de protótipo padrão. Sua classe precisa de um construtor :new(model, color) que cria carros com seus próprios atributos. Inclua um método :describe() que permite que cada carro se apresente.
  • main.lua: Requeira seu módulo Car e crie múltiplas instâncias de carros para demonstrar que cada carro mantém seu próprio estado independente.

Seu método :describe() deve imprimir exatamente neste formato:

A [color] [model]

Você receberá quatro entradas:

  1. Modelo para o primeiro carro
  2. Cor para o primeiro carro
  3. Modelo para o segundo carro
  4. Cor para o segundo carro

No seu arquivo principal, crie dois carros usando as entradas fornecidas e faça com que cada um se descreva em uma linha separada.

Por exemplo, se as entradas forem Sedan, blue, Truck e red, a saída deve ser:

A blue Sedan
A red Truck

Cada carro deve armazenar seu próprio modelo e cor, provando que sua classe cria instâncias verdadeiramente independentes.

Experimente você mesmo

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

-- Lê as entradas
local model1 = io.read()
local color1 = io.read()
local model2 = io.read()
local color2 = io.read()

-- TODO: Criar duas instâncias de carro usando Car:new()
-- TODO: Chamar :describe() em cada carro para imprimir suas descrições

Todas as lições de Object Oriented Programming