Menu
Coddy logo textTech

Classe Rectangle

Fait partie de la section Object Oriented Programming du Journey Lua de Coddy — leçon 56 sur 70.

challenge icon

Défi

Facile

Maintenant, élargissons notre gestionnaire de formes en créant une classe Rectangle qui hérite de la classe de base Shape que vous avez construite dans la leçon précédente.

Vous travaillerez avec trois fichiers pour garder votre code organisé :

  • Shape.lua : Votre classe de base Shape du défi précédent (avec :new(name) et :getName()).
  • Rectangle.lua : Créez une classe Rectangle qui hérite de Shape. Le constructeur doit accepter width et height, appeler le constructeur parent avec le nom "Rectangle", et stocker les dimensions. Ajoutez une méthode :getArea() qui calcule et retourne l'aire du rectangle.
  • main.lua : Importez votre module Rectangle, lisez la largeur (width) et la hauteur (height) depuis l'entrée, créez une instance de Rectangle, et affichez son nom suivi de son aire sur des lignes séparées.

N'oubliez pas de configurer correctement le lien d'héritage afin que les instances de Rectangle puissent accéder aux méthodes de Shape via la chaîne de prototypes.

Entrée : Deux lignes — la première contenant la largeur (nombre), la seconde contenant la hauteur (nombre).

Sortie : Deux lignes — le nom du rectangle provenant de :getName(), puis son aire provenant de :getArea().

Essayez vous-même

-- Charger le module Rectangle
local Rectangle = require('Rectangle')

-- Lire la largeur et la hauteur depuis l'entrée
local width = tonumber(io.read())
local height = tonumber(io.read())

-- Créer une nouvelle instance de Rectangle avec les dimensions données
local rect = Rectangle:new(width, height)

-- Afficher le nom et l'aire du rectangle
print(rect:getName())
print(rect:getArea())

Toutes les leçons de Object Oriented Programming