Menu
Coddy logo textTech

Класс Rectangle

Часть раздела Объектно-ориентированное программирование путешествия по Lua на Coddy. Урок 56 из 70.

challenge icon

Задание

Легко

Теперь расширим наш Shape Manager, создав Rectangle class, которая наследует базовый Shape, созданный тобой на предыдущем уроке.

Ты будешь работать с тремя файлами, чтобы сохранить код организованным:

  • Shape.lua: твой базовый Shape class из предыдущего задания (с :new(name) и :getName()).
  • Rectangle.lua: создай Rectangle class, который наследует Shape. Конструктор должен принимать width и height, вызывать конструктор parent с именем "Rectangle" и сохранять dimensions. Добавь метод :getArea(), который вычисляет и возвращает area прямоугольника.
  • main.lua: подключи свой Rectangle module, считай width и height из input, создай Rectangle instance и выведи его имя, а затем area, в отдельных строках.

Remember правильно настроить связь inheritance, чтобы экземпляры Rectangle могли получать доступ к method Shape через цепочку prototype.

Ввод: Две строки: первая содержит width (число), вторая содержит height (число).

Вывод: Две строки: имя прямоугольника из :getName(), затем его area из :getArea().

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

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

-- Прочитать ширину и высоту из ввода
local width = tonumber(io.read())
local height = tonumber(io.read())

-- Создать новый экземпляр Rectangle с заданными размерами
local rect = Rectangle:new(width, height)

-- Вывести имя и площадь прямоугольника
print(rect:getName())
print(rect:getArea())

Все уроки раздела Объектно-ориентированное программирование

Потренируйтесь самостоятельно: Онлайн-компилятор Lua