Menu
Coddy logo textTech

Kontoinformationen

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

challenge icon

Aufgabe

Einfach

Ihre Digital Bank wird immer professioneller! Lassen Sie uns nun dafür sorgen, dass Ihre Konten beim Ausdrucken ansprechend dargestellt werden. Durch Hinzufügen einer __tostring-Metamethode können Sie genau steuern, wie ein Konto erscheint – indem sowohl eine Konto-ID als auch der aktuelle Kontostand in einem sauberen, lesbaren Format angezeigt werden.

Sie werden auf Ihren bestehenden Dateien weiter aufbauen:

  • Account.lua: Erweitern Sie Ihre Account-Klasse um zwei neue Funktionen:
    • Ändern Sie den :new()-Konstruktor so, dass er einen id-Parameter akzeptiert, der jedes Konto identifiziert.
    • Fügen Sie eine __tostring-Metamethode hinzu, die eine formatierte Zeichenfolge mit den Informationen des Kontos zurückgibt.
    Behalten Sie alle Ihre vorhandenen Funktionen (Methoden deposit, withdraw und getBalance) bei.
  • main.lua: Erstellen Sie Konten mit IDs und demonstrieren Sie, wie sie sich beim Drucken darstellen.

Die __tostring-Methode sollte einen String in genau diesem Format zurückgeben:

Account [ID]: Balance = BALANCE

Wobei ID die ID des Kontos und BALANCE der aktuelle Kontostand ist.

Sie erhalten vier Eingaben:

  1. ID des ersten Kontos
  2. Einzahlungsbetrag des ersten Kontos
  3. ID des zweiten Kontos
  4. Einzahlungsbetrag des zweiten Kontos

Erstellen Sie in Ihrer Hauptdatei zwei Konten mit den angegebenen IDs, zahlen Sie die jeweiligen Beträge in jedes Konto ein und drucken Sie dann jedes Konto direkt mit print() aus. Die __tostring-Metamethode wird automatisch aufgerufen, wenn Sie das Konto-Objekt drucken.

Wenn die Eingaben beispielsweise 1001, 500, 1002 und 750 sind, sollte die Ausgabe wie folgt aussehen:

Account [1001]: Balance = 500
Account [1002]: Balance = 750

Jedes Konto hat nun eine eindeutige Identität und kann sich selbst klar beschreiben – ein viel professionelleres Bankerlebnis!

Probier es selbst

-- Das Account-Modul einbinden
local Account = require('Account')

-- Die vier Eingaben lesen
local id1 = io.read()
local deposit1 = tonumber(io.read())
local id2 = io.read()
local deposit2 = tonumber(io.read())

-- Zwei Konten mit IDs erstellen
local account1 = Account:new(id1)
local account2 = Account:new(id2)

-- Die jeweiligen Beträge einzahlen
account1:deposit(deposit1)
account2:deposit(deposit2)

-- Jedes Konto ausgeben (verwendet __tostring)
print(account1)
print(account2)

Alle Lektionen in Object Oriented Programming