Einzahlungsmethode
Teil des Abschnitts Objektorientierte Programmierung der Lua-Journey von Coddy — Lektion 20 von 70.
Aufgabe
EinfachWir starten jetzt das Digital Bank-Projekt. Zeit, Ihrem neuen System Funktionalität hinzuzufügen! Nachdem Konten nun mit einem Startguthaben von 0 erstellt werden können, geben wir ihnen die Möglichkeit, Geld durch Einzahlungen zu empfangen.
Aufbauend auf Ihrer bestehenden Account-class fügen Sie eine :deposit(amount)-method hinzu, die das balance des Kontos um den angegebenen Betrag erhöht. Dies ist eine grundlegende Bankoperation – Geld geht ein, und das Guthaben wächst!
Ihre zwei Dateien:
Account.lua: Erweitern Sie IhreAccount-class, indem Sie eine:deposit(amount)-methodhinzufügen. Diesemethodshouldden übergebenenamountzuself.balancehinzufügen. Behalten Sie alles aus der vorherigen Lektion bei (dieclass-Struktur und den:new()-constructor).main.lua:RequireSie IhrAccount-module,createSie einaccount, führen Sie einigedepositsaus und zeigen Sie, wie sich dasbalanceändert.
Sie erhalten three Eingaben:
- Erster Einzahlungsbetrag
- Zweiter Einzahlungsbetrag
- Dritter Einzahlungsbetrag
Erstellen Sie in Ihrer Hauptdatei ein single account und führen Sie die three deposits der Reihe nach aus. Perform after jedem deposit einen print des aktuellen balance in einer neuen Zeile.
Wenn die Eingaben beispielsweise 100, 50 und 25 lauten, sollte die Ausgabe wie folgt aussehen:
100
150
175Beachten Sie, wie jede Einzahlung auf dem vorherigen Guthaben aufbaut – das Konto beginnt bei 0, wächst after der ersten Einzahlung auf 100, after der zweiten auf 150 und after der dritten auf 175. Ihre :deposit()-method sorgt dafür, dass diese Akkumulation stattfindet!
Probier es selbst
-- Account-Modul einbinden
local Account = require('Account')
-- Die drei Einzahlungsbeträge einlesen
local deposit1 = tonumber(io.read())
local deposit2 = tonumber(io.read())
local deposit3 = tonumber(io.read())
-- Ein einzelnes Konto erstellen
local account = Account:new()
-- Die drei Einzahlungen durchführen und nach jeder den Kontostand ausgeben
-- TODO: deposit1 einzahlen und account.balance ausgeben
-- TODO: deposit2 einzahlen und account.balance ausgeben
-- TODO: deposit3 einzahlen und account.balance ausgeben
Alle Lektionen in Objektorientierte Programmierung
1Das 'self'-Konzept
Tabellen mit FunktionenExplizites 'self'Die Doppelpunkt-SyntaxPunkt vs. DoppelpunktZusammenfassung – Beweglicher Punkt4Projekt: Digitale Bank
Projekt-SetupEinzahlungsmethode7Polymorphie & Überschreiben
Methoden überschreibenElternmethoden aufrufenDuck TypingGemeinsames InterfaceTyp prüfenRückblick - Mitarbeiterrollen10Projekt: Formen-Manager
Projekt-SetupRechteck-KlasseKreis-KlasseUmfang-MethodeFormen-SammlungGesamtflächeFormen filtern2Klassen-Prototyp-Muster
Das Prototyp-KonzeptVerknüpfung mit __indexDer :new()-KonstruktorAttribute initialisierenUnabhängige InstanzenZusammenfassung – Autofabrik5Operatorüberladung in OOP
Objekte addierenObjekte subtrahierenObjekte verkettenObjekte vergleichen (<, >)Rückblick – Wallet-Mathematik3Objektzustand und -verhalten
InstanzvariablenGetter-MethodenSetter-MethodenBerechnete EigenschaftenStrings formatierenGleichheitsprüfungenZusammenfassung – Studentennote6Grundlagen der Vererbung
Das Vererbungs-SetupMethoden vererbenDen Konstruktor erweiternChild-Methoden hinzufügenGemeinsam vs. EinzigartigZusammenfassung - Formen-Hierarchie9Komposition & Mixins
Has-A-BeziehungDelegationEinfache MixinsAnwendung mehrerer MixinsMixins vs. VererbungZusammenfassung – Roboter-Montage12Abschluss-Herausforderungen
Wiederholung - InventarsystemWiederholung - BenutzerverwaltungWiederholung - Score-TrackerFinaler OOP-Check