Menu
Coddy logo textTech

Rechteck-Klasse

Teil des Abschnitts Object Oriented Programming der Lua-Journey von Coddy — Lektion 56 von 70.

challenge icon

Aufgabe

Einfach

Lassen Sie uns nun unseren Shape Manager erweitern, indem wir eine Rectangle-Klasse erstellen, die von der Basisklasse Shape erbt, die Sie in der vorherigen Lektion erstellt haben.

Sie werden mit drei Dateien arbeiten, um Ihren Code organisiert zu halten:

  • Shape.lua: Ihre Basisklasse Shape aus der vorherigen Herausforderung (mit :new(name) und :getName()).
  • Rectangle.lua: Erstellen Sie eine Rectangle-Klasse, die von Shape erbt. Der Konstruktor sollte width und height akzeptieren, den Eltern-Konstruktor mit dem Namen "Rectangle" aufrufen und die Dimensionen speichern. Fügen Sie eine :getArea()-Methode hinzu, die die Fläche des Rechtecks berechnet und zurückgibt.
  • main.lua: Binden Sie Ihr Rectangle-Modul ein, lesen Sie Breite und Höhe aus der Eingabe, erstellen Sie eine Rectangle-Instanz und geben Sie deren Namen gefolgt von der Fläche in separaten Zeilen aus.

Denken Sie daran, die Vererbung korrekt einzurichten, damit Rectangle-Instanzen über die Prototypenkette auf die Methoden von Shape zugreifen können.

Eingabe: Zwei Zeilen – die erste enthält die Breite (Zahl), die zweite die Höhe (Zahl).

Ausgabe: Zwei Zeilen – der Name des Rechtecks aus :getName(), dann seine Fläche aus :getArea().

Probier es selbst

-- Das Rectangle-Modul einbinden
local Rectangle = require('Rectangle')

-- Breite und Höhe aus der Eingabe lesen
local width = tonumber(io.read())
local height = tonumber(io.read())

-- Erstellt eine neue Rectangle-Instanz mit den gegebenen Dimensionen
local rect = Rectangle:new(width, height)

-- Name und Fläche des Rechtecks ausgeben
print(rect:getName())
print(rect:getArea())

Alle Lektionen in Object Oriented Programming