Menu
Coddy logo textTech

Kontoinformationen

Teil des Abschnitts Objektorientierte Programmierung der Lua-Journey von Coddy. Lektion 23 von 70.

challenge icon

Aufgabe

Einfach

Deine Digitalbank wird immer professioneller! Jetzt sorgen wir dafür, dass deine Konten bei der Ausgabe übersichtlich dargestellt werden. Durch das Hinzufügen einer __tostring-Metamethode kannst du genau festlegen, wie ein Konto angezeigt wird: mit sowohl einer Konto-ID als auch dem aktuellen Kontostand in einem klaren, lesbaren Format.

Du baust weiterhin auf deinen vorhandenen Dateien auf:

  • Account.lua: Erweitere deine Account-Klasse um zwei neue Funktionen:
    • Ändere den :new()-Konstruktor so, dass er einen id-Parameter akzeptiert, der jedes Konto identifiziert
    • Füge eine __tostring-Metamethode hinzu, die eine formatierte Zeichenkette mit den Kontoinformationen zurückgibt
    Behalte alle vorhandenen Funktionen bei (deposit-, withdraw- und getBalance-Methoden).
  • main.lua: Erstelle Konten mit IDs und zeige, wie sie bei der Ausgabe dargestellt werden.

Die __tostring-Methode sollte eine Zeichenkette in diesem exakten Format zurückgeben:

Account [ID]: Balance = BALANCE

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

Du erhältst vier Eingaben:

  1. ID des ersten Kontos
  2. Einzahlungsbetrag für das erste Konto
  3. ID des zweiten Kontos
  4. Einzahlungsbetrag für das zweite Konto

Erstelle in deiner Hauptdatei zwei Konten mit den angegebenen IDs, zahle die jeweiligen Beträge auf jedes Konto ein und gib anschließend jedes Konto direkt mit print() aus. Die __tostring-Metamethode wird automatisch aufgerufen, wenn du das Kontoobjekt ausgibst.

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

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

Jedes Konto besitzt nun eine eindeutige Identität und kann sich klar selbst beschreiben: eine deutlich professionellere Bankerfahrung!

Probier es selbst

-- 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 Accounts mit IDs erstellen
local account1 = Account:new(id1)
local account2 = Account:new(id2)

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

-- Jeden Account ausgeben (verwendet __tostring)
print(account1)
print(account2)

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Online-Lua-Compiler