Menu
Coddy logo textTech

Итоги — Автозавод

Часть раздела Object Oriented Programming путешествия по Lua на Coddy — урок 11 из 70.

challenge icon

Задание

Легко

Давайте создадим полноценный класс Car, который объединит все, что вы узнали в этой главе! Вы создадите систему автомобильного завода, где каждый автомобиль имеет свою модель и цвет, демонстрируя правильную организацию модулей и независимые экземпляры.

Вы распределите свой код по двум файлам:

  • Car.lua: Определите класс Car, следуя стандартному шаблону прототипа. Вашему классу нужен конструктор :new(model, color), который создает автомобили с их собственными атрибутами. Включите метод :describe(), который позволяет каждому автомобилю представиться.
  • main.lua: Подключите модуль Car и создайте несколько экземпляров автомобилей, чтобы продемонстрировать, что каждый автомобиль сохраняет свое собственное независимое состояние.

Ваш метод :describe() должен выводить данные именно в таком формате:

A [color] [model]

Вы получите четыре входных значения:

  1. Модель для первого автомобиля
  2. Цвет для первого автомобиля
  3. Модель для второго автомобиля
  4. Цвет для второго автомобиля

В основном файле создайте два автомобиля, используя предоставленные входные данные, и пусть каждый из них опишет себя на отдельной строке.

Например, если входные данные — Sedan, blue, Truck и red, вывод должен быть следующим:

A blue Sedan
A red Truck

Каждый автомобиль должен хранить свою модель и цвет, доказывая, что ваш класс создает по-настоящему независимые экземпляры.

Попробуйте сами

-- Подключить модуль Car
local Car = require('Car')

-- Прочитать входные данные
local model1 = io.read()
local color1 = io.read()
local model2 = io.read()
local color2 = io.read()

-- TODO: Создать два экземпляра автомобиля, используя Car:new()
-- TODO: Вызвать :describe() для каждого автомобиля, чтобы вывести их описания

Все уроки раздела Object Oriented Programming