Configurazione del progetto
Fa parte della sezione Programmazione orientata agli oggetti del percorso Lua di Coddy. Lezione 19 di 70.
Sfida
FacileStiamo iniziando il progetto Digital Bank. Nelle prossime lezioni creerai una classe Account in grado di ricevere depositi, gestire prelievi, stampare se stessa e trasferire denaro ad altri conti. Si parte da una struttura di file ordinata e da un costruttore.
I tuoi due file:
Account.lua: definisci la tabellaAccount, impostaAccount.__index = Accountaffinché le istanze trovino i propri metodi e scrivi il costruttore:new(). Crea una tabella vuota, imposta la sua metatabella suAccount, assegnale unbalancedi0e restituiscila. Il file termina conreturn Account.main.lua: importa il modulo conrequire('Account'), crea due conti conAccount:new(), stampa il saldo di ciascuno su una riga distinta, poi stampasavings == checkingper mostrare che le due chiamate hanno prodotto due tabelle diverse.
Output previsto:
0
0
falseOgni conto parte da zero. Nella prossima lezione aggiungerai il metodo :deposit(amount), che fa aumentare il saldo.
Provalo tu
-- TODO: importa il modulo Account con require (il file è Account.lua)
local Account = nil
-- TODO: crea due conti con Account:new()
-- TODO: stampa il saldo di ciascun conto (uno per riga)
-- TODO: stampa se i due conti sono la stessa tabella (non dovrebbero esserlo)
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