Menu
Coddy logo textTech

Класс Rectangle

Часть раздела Объектно-ориентированное программирование путешествия по 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())

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

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