Menu
Coddy logo textTech

Classe Rettangolo

Fa parte della sezione Programmazione orientata agli oggetti del percorso Lua di Coddy. Lezione 56 di 70.

challenge icon

Sfida

Facile

Ora espandiamo il nostro Shape Manager creando una classe Rectangle che eredita dalla classe base Shape che hai realizzato nella lezione precedente.

Lavorerai con tre file per mantenere il codice organizzato:

  • Shape.lua: la tua classe base Shape della sfida precedente (con :new(name) e :getName()).
  • Rectangle.lua: crea una classe Rectangle che eredita da Shape. Il costruttore deve accettare width e height, chiamare il costruttore della classe genitore con il nome "Rectangle" e memorizzare le dimensioni. Aggiungi un metodo :getArea() che calcola e restituisce l'area del rettangolo.
  • main.lua: richiedi il modulo Rectangle, leggi width e height dall'input, crea un'istanza Rectangle e stampa il suo nome seguito dalla sua area su righe separate.

Ricorda di impostare correttamente il collegamento di ereditarietà, in modo che le istanze Rectangle possano accedere ai metodi di Shape attraverso la catena dei prototipi.

Input: due righe: la prima contiene la larghezza (numero), la seconda l'altezza (numero).

Output: due righe: il nome del rettangolo restituito da :getName(), poi la sua area restituita da :getArea().

Provalo tu

-- Carica il modulo Rectangle con require
local Rectangle = require('Rectangle')

-- Leggi width e height dall'input
local width = tonumber(io.read())
local height = tonumber(io.read())

-- Crea una nuova istanza di Rectangle con le dimensioni specificate
local rect = Rectangle:new(width, height)

-- Stampa il nome e l'area del rettangolo
print(rect:getName())
print(rect:getArea())

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore Lua online