Rückblick – Wallet-Mathematik
Teil des Abschnitts Objektorientierte Programmierung der Lua-Journey von Coddy. Lektion 30 von 70.
Aufgabe
EinfachErstellen wir eine Wallet-Klasse, die die in diesem Kapitel erlernten Fähigkeiten zur Operatorüberladung zusammenführt. Deine Wallet speichert einen Geldbetrag und unterstützt zwei wichtige Operationen: das Zusammenführen von Wallets mit + sowie das Vergleichen von Wallets mit <code>< und .
Du organisierst deinen Code auf zwei Dateien verteilt:
Wallet.lua: Definiere deine Wallet-Klasse mit einemamount-Feld, das angibt, wie viel Geld sie enthält. Füge einen:new(amount)-Konstruktor hinzu und implementiere zwei Metamethoden:__add: Das Addieren zweier Wallets erstellt eine neue Wallet mit der kombinierten Gesamtsumme__lt: Der Vergleich von Wallets bestimmt, welche weniger Geld enthält
main.lua: Binde dein Wallet-Modul ein, erstelle Wallet-Instanzen und führe vor, wie beide Operationen zusammen funktionieren.
Du erhältst drei Eingaben:
- Betrag in der ersten Wallet
- Betrag in der zweiten Wallet
- Betrag in der dritten Wallet
Erstelle in deiner Hauptdatei drei Wallets mit den angegebenen Beträgen. Dann:
- Addiere die erste und die zweite Wallet, um eine kombinierte Wallet zu erstellen
- Gib den Betrag der kombinierten Wallet aus
- Vergleiche die kombinierte Wallet mithilfe von <code>< mit der dritten Wallet und gib das Ergebnis (
trueoderfalse) aus - Vergleiche die kombinierte Wallet mithilfe von
mit der dritten Wallet und gib das Ergebnis (trueoderfalse) aus
Wenn die Eingaben beispielsweise 50, 30 und 100 lauten, sollte die Ausgabe wie folgt aussehen:
80
true
falseDie erste Wallet (50) und die zweite Wallet (30) ergeben zusammen eine Wallet mit 80. Da 80 kleiner als 100 ist, lautet das Ergebnis des ersten Vergleichs true. Da 80 nicht größer als 100 ist, lautet das Ergebnis des zweiten Vergleichs 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 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