Menu
Coddy logo textTech

Informazioni sul conto

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

challenge icon

Sfida

Facile

La tua Banca Digitale sta diventando sempre più professionale! Ora facciamo in modo che i tuoi conti vengano visualizzati in modo ordinato quando li stampi. Aggiungendo un metametodo __tostring, puoi controllare esattamente come appare un conto: mostrando sia l’ID del conto sia il saldo attuale in un formato chiaro e leggibile.

Continuerai a lavorare sui file esistenti:

  • Account.lua: estendi la classe Account con due nuove funzionalità:
    • Modifica il costruttore :new() in modo che accetti un parametro id che identifica ogni conto
    • Aggiungi un metametodo __tostring che restituisca una stringa formattata con le informazioni del conto
    Mantieni tutte le funzionalità esistenti (i metodi deposit, withdraw e getBalance).
  • main.lua: crea conti con ID e mostra come vengono visualizzati quando li stampi.

Il metodo __tostring dovrebbe restituire una stringa in questo formato esatto:

Account [ID]: Balance = BALANCE

Dove ID è l’ID del conto e BALANCE è il saldo attuale.

Riceverai quattro input:

  1. ID del primo conto
  2. Importo del deposito del primo conto
  3. ID del secondo conto
  4. Importo del deposito del secondo conto

Nel file principale, crea due conti con gli ID indicati, deposita i rispettivi importi su ciascuno, quindi stampa direttamente ogni conto usando print(). Il metametodo __tostring verrà chiamato automaticamente quando stamperai l’oggetto conto.

Per esempio, se gli input sono 1001, 500, 1002 e 750, l’output dovrebbe essere:

Account [1001]: Balance = 500
Account [1002]: Balance = 750

Ora ogni conto ha un’identità univoca e può descriversi chiaramente: un’esperienza bancaria molto più professionale!

Provalo tu

-- Carica il modulo Account
local Account = require('Account')

-- Leggi i quattro input
local id1 = io.read()
local deposit1 = tonumber(io.read())
local id2 = io.read()
local deposit2 = tonumber(io.read())

-- Crea due conti con ID
local account1 = Account:new(id1)
local account2 = Account:new(id2)

-- Deposita i rispettivi importi
account1:deposit(deposit1)
account2:deposit(deposit2)

-- Stampa ogni conto (usa __tostring)
print(account1)
print(account2)

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore Lua online