Ripasso - Calcoli con il portafoglio
Fa parte della sezione Programmazione orientata agli oggetti del percorso Lua di Coddy. Lezione 30 di 70.
Sfida
FacileCostruiamo una classe Wallet che riunisca le competenze di sovraccarico degli operatori che hai acquisito in questo capitolo. Il tuo portafoglio memorizzerà una somma di denaro e supporterà due operazioni fondamentali: combinare portafogli con + e confrontare portafogli con < e >.
Organizzerai il codice in due file:
Wallet.lua: definisci la classe Wallet con un campoamountche rappresenta quanto denaro contiene. Includi un costruttore:new(amount)e implementa due metametodi:__add: sommare due portafogli crea un nuovo portafoglio contenente il totale combinato__lt: confrontare i portafogli determina quale contiene meno denaro
main.lua: importa il modulo Wallet, crea istanze di portafoglio e mostra entrambe le operazioni in funzione.
Riceverai tre input:
- Importo nel primo portafoglio
- Importo nel secondo portafoglio
- Importo nel terzo portafoglio
Nel file principale, crea tre portafogli con gli importi indicati. Poi:
- Somma il primo e il secondo portafoglio per creare un portafoglio combinato
- Stampa l'importo del portafoglio combinato
- Confronta il portafoglio combinato con il terzo portafoglio usando
<e stampa il risultato (trueofalse) - Confronta il portafoglio combinato con il terzo portafoglio usando
>e stampa il risultato (trueofalse)
Per esempio, se gli input sono 50, 30 e 100, l'output dovrebbe essere:
80
true
falseIl primo portafoglio (50) più il secondo portafoglio (30) crea un portafoglio combinato con 80. Poiché 80 è minore di 100, il primo confronto è true. Poiché 80 non è maggiore di 100, il secondo confronto è false.
Provalo tu
local Wallet = require('Wallet')
-- Leggi l'input
local amount1 = tonumber(io.read())
local amount2 = tonumber(io.read())
local amount3 = tonumber(io.read())
-- TODO: Crea tre portafogli con gli importi indicati
-- TODO: Somma il primo e il secondo portafoglio per creare un portafoglio combinato
-- TODO: Stampa l'importo del portafoglio combinato
-- TODO: Confronta il portafoglio combinato con il terzo portafoglio usando < e stampa il risultato
-- TODO: Confronta il portafoglio combinato con il terzo portafoglio usando > e stampa il risultato
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