Menu
Coddy logo textTech

Класс Rectangle

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

challenge icon

Задание

Легко

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

Вы будете работать с тремя файлами, чтобы поддерживать структуру кода:

  • Shape.lua: Ваш базовый класс Shape из предыдущего задания (с методами :new(name) и :getName()).
  • Rectangle.lua: Создайте класс Rectangle, который наследуется от Shape. Конструктор должен принимать width и height, вызывать родительский конструктор с именем "Rectangle" и сохранять размеры. Добавьте метод :getArea(), который вычисляет и возвращает площадь прямоугольника.
  • main.lua: Подключите модуль Rectangle, считайте ширину и высоту из входных данных, создайте экземпляр Rectangle и выведите его имя, а затем его площадь на отдельных строках.

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

Ввод: Две строки — первая содержит ширину (число), вторая содержит высоту (число).

Вывод: Две строки — имя прямоугольника из :getName(), затем его площадь из :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())

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