Menu
Coddy logo textTech

Kontostand abrufen

Teil des Abschnitts Object Oriented Programming der Lua-Journey von Coddy — Lektion 22 von 70.

challenge icon

Aufgabe

Einfach

Ihre digitale Bank nimmt wirklich Gestalt an! Konten können Einzahlungen entgegennehmen und Abhebungen mit ordnungsgemäßer Deckungsprüfung verarbeiten. Lassen Sie uns nun eine Getter-Methode hinzufügen, um den Kontostand abzurufen, und dann alles in einem realistischen Bank-Szenario zusammenführen.

Sie werden auf Ihren bestehenden Dateien weiter aufbauen:

  • Account.lua: Fügen Sie eine :getBalance()-Methode hinzu, die den aktuellen Kontostand zurückgibt. Dies folgt dem Getter-Muster, das Sie zuvor gelernt haben – es bietet kontrollierten Zugriff auf interne Daten, anstatt direkt auf das Feld zuzugreifen. Behalten Sie alle Ihre vorhandenen Funktionen (Konstruktor, Einzahlungs- und Abhebungsmethoden) bei.
  • main.lua: Erstellen Sie ein Konto und führen Sie eine Sequenz von Bankgeschäften durch, um zu demonstrieren, wie Einzahlungen, Abhebungen und Kontostandsabfragen in einem realen Szenario zusammenarbeiten.

Sie erhalten fünf Eingaben:

  1. Betrag der Ersteinzahlung
  2. Betrag der ersten Abhebung
  3. Betrag der zweiten Einzahlung
  4. Betrag der zweiten Abhebung
  5. Betrag der dritten Abhebung

Erstellen Sie in Ihrer Hauptdatei ein Konto und führen Sie diese Operationen in der folgenden Reihenfolge aus:

  1. Zahlen Sie den Anfangsbetrag ein und geben Sie dann den Kontostand mit :getBalance() aus
  2. Heben Sie den ersten Betrag ab und geben Sie dann den Kontostand aus
  3. Zahlen Sie den zweiten Betrag ein und geben Sie dann den Kontostand aus
  4. Heben Sie den zweiten Betrag ab und geben Sie dann den Kontostand aus
  5. Versuchen Sie die dritte Abhebung und geben Sie dann den Kontostand aus

Denken Sie daran, dass fehlgeschlagene Abhebungen Insufficient funds ausgeben, bevor Sie den Kontostand drucken.

Wenn die Eingaben beispielsweise 200, 50, 100, 180 und 100 sind, sollte die Ausgabe wie folgt aussehen:

200
150
250
70
Insufficient funds
70

Das Konto beginnt bei 200, sinkt nach der ersten Abhebung auf 150, steigt nach einer weiteren Einzahlung auf 250, fällt nach der Abhebung von 180 auf 70 und bleibt bei 70, wenn die letzte Abhebung von 100 wegen unzureichender Deckung fehlschlägt.

Probier es selbst

-- Erfordert das Account-Modul
local Account = require('Account')

-- Die fünf Eingaben lesen
local initialDeposit = tonumber(io.read())
local withdrawal1 = tonumber(io.read())
local deposit2 = tonumber(io.read())
local withdrawal2 = tonumber(io.read())
local withdrawal3 = tonumber(io.read())

-- Ein einzelnes Konto erstellen
local account = Account:new()

-- Den Anfangsbetrag einzahlen und den Kontostand mit :getBalance() ausgeben
account:deposit(initialDeposit)
print(account:getBalance())

-- Ersten Abhebungsversuch durchführen und Kontostand ausgeben
account:withdraw(withdrawal1)
print(account:getBalance())

-- Den zweiten Betrag einzahlen und den Kontostand ausgeben
account:deposit(deposit2)
print(account:getBalance())

-- Zweiten Abhebungsversuch durchführen und Kontostand ausgeben
account:withdraw(withdrawal2)
print(account:getBalance())

-- Dritten Abhebungsversuch durchführen und Kontostand ausgeben
account:withdraw(withdrawal3)
print(account:getBalance())

Alle Lektionen in Object Oriented Programming