Metodo di deposito
Fa parte della sezione Programmazione orientata agli oggetti del percorso Lua di Coddy. Lezione 20 di 70.
Sfida
FacileStiamo iniziando il progetto Digital Bank. È ora di aggiungere funzionalità al tuo nuovo sistema! Ora che è possibile creare conti con un saldo iniziale pari a 0, permettiamo loro di ricevere denaro tramite depositi.
Partendo dalla tua classe Account esistente, aggiungerai un metodo :deposit(amount) che aumenta il saldo del conto dell'importo specificato. È un'operazione bancaria fondamentale: il denaro entra e il saldo cresce!
I tuoi due file:
Account.lua: estendi la classe Account aggiungendo un metodo:deposit(amount). Questo metodo deve aggiungere l'importo dato aself.balance. Mantieni tutto ciò che c'era nella lezione precedente (la struttura della classe e il costruttore:new()).main.lua: importa il modulo Account, crea un conto, effettua alcuni depositi e mostra come cambia il saldo.
Riceverai tre input:
- Importo del primo deposito
- Importo del secondo deposito
- Importo del terzo deposito
Nel file principale, crea un solo conto ed effettua i tre depositi nell'ordine indicato. Dopo ogni deposito, stampa il saldo attuale su una nuova riga.
Per esempio, se gli input sono 100, 50 e 25, l'output dovrebbe essere:
100
150
175Nota come ogni deposito si aggiunge al saldo precedente: il conto parte da 0, poi sale a 100 dopo il primo deposito, a 150 dopo il secondo e a 175 dopo il terzo. Il tuo metodo :deposit() permette questa accumulazione!
Provalo tu
-- Carica il modulo Account
local Account = require('Account')
-- Leggi i tre importi dei depositi
local deposit1 = tonumber(io.read())
local deposit2 = tonumber(io.read())
local deposit3 = tonumber(io.read())
-- Crea un unico conto
local account = Account:new()
-- Effettua i tre depositi e stampa il saldo dopo ciascuno
-- TODO: deposita deposit1 e stampa account.balance
-- TODO: deposita deposit2 e stampa account.balance
-- TODO: deposita deposit3 e stampa account.balance
Tutte le lezioni di Programmazione orientata agli oggetti
1Il concetto di «self»
Tabelle con funzioni«self» esplicitoLa sintassi dei due puntiPunto o due puntiRiepilogo - Spostare il punto4Progetto: Banca digitale
Configurazione del progettoMetodo di deposito2Schema del prototipo di classe
Il concetto di prototipoCollegare con __indexIl costruttore :new()Inizializzare gli attributiIstanze indipendentiRiepilogo - Fabbrica di auto5Sovraccarico degli operatori nella OOP
Sommare oggettiSottrarre oggettiConcatenare oggettiConfrontare oggetti (<, >)Ripasso - Calcoli con il portafoglio8Incapsulamento
Convenzioni di denominazioneClosure per la privacyAccesso tramite closureTabelle di sola letturaLogica di convalidaRiepilogo - Cassaforte sicura11Modelli di progettazione (base)
Funzioni factoryTabella singletonPattern IteratorObserver (listener)Riepilogo - Factory per logger3Stato e comportamento degli oggetti
Variabili di istanzaMetodi getterMetodi setterProprietà calcolateFormattazione delle stringheControlli di uguaglianzaRiepilogo - Voto dello studente6Fondamenti dell'ereditarietà
Configurare l'ereditarietàEreditare i metodiEstendere il costruttoreAggiungere metodi alla classe figliaCondiviso vs specificoRiepilogo - Gerarchia delle formeEsercitati da solo: Compilatore Lua online