Projekt-Setup
Teil des Abschnitts Objektorientierte Programmierung der Lua-Journey von Coddy. Lektion 19 von 70.
Aufgabe
EinfachWir beginnen mit dem Projekt Digital Bank. In den nächsten Lektionen wirst du eine Account-Klasse erstellen, die Einzahlungen empfangen, Abhebungen durchführen, sich selbst ausgeben und Geld auf andere Konten übertragen kann. Alles beginnt mit einer sauberen Dateistruktur und einem Konstruktor.
Deine beiden Dateien:
Account.lua: Definiere die TabelleAccount, setzeAccount.__index = Account, damit Instanzen ihre Methoden finden, und schreibe den Konstruktor:new(). Er erstellt eine leere Tabelle, setzt ihre Metatabelle aufAccount, gibt ihr einenbalancevon0und gibt sie zurück. Die Datei endet mitreturn Account.main.lua: Binde das Modul mitrequire('Account')ein, erstelle zwei Konten mitAccount:new(), gib den Kontostand jedes Kontos in einer eigenen Zeile aus und gib anschließendsavings == checkingaus, um zu zeigen, dass die beiden Aufrufe zwei verschiedene Tabellen erzeugt haben.
Erwartete Ausgabe:
0
0
falseJedes Konto beginnt bei null. In der nächsten Lektion wirst du die Methode :deposit(amount) hinzufügen, durch die der Kontostand wächst.
Probier es selbst
-- TODO: das Account-Modul einbinden (die Datei ist Account.lua)
local Account = nil
-- TODO: erstelle zwei Accounts mit Account:new()
-- TODO: gib den Kontostand jedes Accounts aus (einen pro Zeile)
-- TODO: gib aus, ob die beiden Accounts dieselbe Tabelle sind (sie sollten es nicht sein)
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