Rückblick – Wallet-Mathematik
Teil des Abschnitts Object Oriented Programming der Lua-Journey von Coddy — Lektion 30 von 70.
Aufgabe
EinfachLassen Sie uns eine Wallet-Klasse erstellen, die die Fähigkeiten zum Überladen von Operatoren zusammenführt, die Sie in diesem Kapitel gelernt haben. Ihre Brieftasche wird einen Geldbetrag speichern und zwei Schlüsseloperationen unterstützen: das Kombinieren von Brieftaschen mit + und das Vergleichen von Brieftaschen mit <code>< und .
Sie werden Ihren Code auf zwei Dateien verteilen:
Wallet.lua: Definieren Sie Ihre Wallet-Klasse mit einemamount-Feld, das angibt, wie viel Geld sie enthält. Fügen Sie einen:new(amount)-Konstruktor hinzu und implementieren Sie zwei Metamethoden:__add: Das Addieren von zwei Brieftaschen erstellt eine neue Brieftasche, die die kombinierte Summe enthält__lt: Das Vergleichen von Brieftaschen bestimmt, welche weniger Geld enthält
main.lua: Binden Sie Ihr Wallet-Modul ein, erstellen Sie Wallet-Instanzen und demonstrieren Sie das Zusammenwirken beider Operationen.
Sie erhalten drei Eingaben:
- Betrag in der ersten Brieftasche
- Betrag in der zweiten Brieftasche
- Betrag in der dritten Brieftasche
Erstellen Sie in Ihrer Hauptdatei drei Brieftaschen mit den angegebenen Beträgen. Dann:
- Addieren Sie die erste und die zweite Brieftasche, um eine kombinierte Brieftasche zu erstellen
- Geben Sie den Betrag der kombinierten Brieftasche aus
- Vergleichen Sie die kombinierte Brieftasche mit der dritten Brieftasche unter Verwendung von <code>< und geben Sie das Ergebnis aus (
trueoderfalse) - Vergleichen Sie die kombinierte Brieftasche mit der dritten Brieftasche unter Verwendung von
und geben Sie das Ergebnis aus (trueoderfalse)
Wenn die Eingaben beispielsweise 50, 30 und 100 sind, sollte die Ausgabe wie folgt aussehen:
80
true
falseDie erste Brieftasche (50) plus die zweite Brieftasche (30) ergibt eine kombinierte Brieftasche mit 80. Da 80 kleiner als 100 ist, ist der erste Vergleich true. Da 80 nicht größer als 100 ist, ist der zweite Vergleich false.
Probier es selbst
local Wallet = require('Wallet')
-- Eingabe lesen
local amount1 = tonumber(io.read())
local amount2 = tonumber(io.read())
local amount3 = tonumber(io.read())
-- TODO: Erstelle drei Wallets mit den angegebenen Beträgen
-- TODO: Addiere das erste und das zweite Wallet, um ein kombiniertes Wallet zu erstellen
-- TODO: Gib den Betrag des kombinierten Wallets aus
-- TODO: Vergleiche das kombinierte Wallet mit dem dritten Wallet mittels < und gib das Ergebnis aus
-- TODO: Vergleiche das kombinierte Wallet mit dem dritten Wallet mittels > und gib das Ergebnis aus
Alle Lektionen in Object Oriented Programming
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-Klasse2Klassen-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