Einzahlungsmethode
Teil des Abschnitts Objektorientierte Programmierung der Lua-Journey von Coddy. Lektion 20 von 70.
Aufgabe
EinfachWir beginnen nun mit dem Projekt „Digital Bank“. Zeit, deinem neuen System Funktionalität hinzuzufügen! Da Konten jetzt mit einem Anfangsguthaben von 0 erstellt werden können, geben wir ihnen die Möglichkeit, Geld durch Einzahlungen zu erhalten.
Aufbauend auf deiner bestehenden Account-Klasse fügst du eine :deposit(amount)-Methode hinzu, die das Guthaben des Kontos um den angegebenen Betrag erhöht. Dies ist ein grundlegender Bankvorgang: Geld kommt hinzu und das Guthaben wächst!
Deine zwei Dateien:
Account.lua: Erweitere deine Account-Klasse, indem du eine:deposit(amount)-Methode hinzufügst. Diese Methode soll den angegebenen Betrag zuself.balanceaddieren. Behalte alles aus der vorherigen Lektion bei (die Klassenstruktur und den:new()-Konstruktor).main.lua: Fordere dein Account-Modul an, erstelle ein Konto, führe einige Einzahlungen durch und zeige, wie sich das Guthaben verändert.
Du erhältst drei Eingaben:
- Betrag der ersten Einzahlung
- Betrag der zweiten Einzahlung
- Betrag der dritten Einzahlung
Erstelle in deiner Hauptdatei ein einzelnes Konto und führe die drei Einzahlungen in dieser Reihenfolge durch. Gib nach jeder Einzahlung das aktuelle Guthaben in einer neuen Zeile aus.
Wenn die Eingaben beispielsweise 100, 50 und 25 lauten, sollte die Ausgabe folgendermaßen aussehen:
100
150
175Beachte, wie jede Einzahlung auf dem vorherigen Guthaben aufbaut: Das Konto beginnt bei 0, wächst nach der ersten Einzahlung auf 100, nach der zweiten auf 150 und nach der dritten auf 175. Deine :deposit()-Methode sorgt dafür, dass diese Ansammlung stattfindet!
Probier es selbst
-- Das Account-Modul laden
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Übe selbstständig: Online-Lua-Compiler