Menu
Coddy logo textTech

Classe Rectangle

Fait partie de la section Programmation orientée objet du Journey Lua de Coddy. Leçon 56 sur 70.

challenge icon

Défi

Facile

Développons maintenant notre gestionnaire de formes en créant une classe Rectangle qui hérite de la classe de base Shape que tu as construite dans la leçon précédente.

Tu travailleras avec trois fichiers pour garder ton code organisé :

  • Shape.lua : ta classe de base Shape du défi précédent (avec :new(name) et :getName()).
  • Rectangle.lua : crée une classe Rectangle qui hérite de Shape. Le constructeur doit accepter width et height, appeler le constructeur parent avec le nom "Rectangle" et enregistrer les dimensions. Ajoute une méthode :getArea() qui calcule et renvoie l’aire du rectangle.
  • main.lua : importe ton module Rectangle, lis la largeur et la hauteur saisies, crée une instance de Rectangle et affiche son nom, puis son aire sur des lignes distinctes.

N’oublie 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 des prototypes.

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

Sortie : Deux lignes : le nom du rectangle obtenu avec :getName(), puis son aire obtenue avec :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 Programmation orientée objet

Entraînez-vous par vous-même : Compilateur Lua en ligne