Menu
Coddy logo textTech

Informacje o koncie

Część sekcji Programowanie obiektowe ścieżki Lua w Coddy. Lekcja 23 z 70.

challenge icon

Wyzwanie

Łatwy

Twój Bank Cyfrowy staje się coraz bardziej profesjonalny! Teraz sprawmy, aby konta ładnie prezentowały się podczas drukowania. Dodając metametodę __tostring, możesz dokładnie określić, jak będzie wyglądać konto: wyświetlić zarówno identyfikator konta, jak i bieżące saldo w przejrzystym, czytelnym formacie.

Będziesz dalej pracować na swoich istniejących plikach:

  • Account.lua: Rozszerz klasę Account o dwie nowe funkcje:
    • Zmodyfikuj konstruktor :new(), aby przyjmował parametr id identyfikujący każde konto
    • Dodaj metametodę __tostring, która zwraca sformatowany ciąg znaków z informacjami o koncie
    Zachowaj całą dotychczasową funkcjonalność (metody deposit, withdraw i getBalance).
  • main.lua: Utwórz konta z identyfikatorami i pokaż, jak prezentują się podczas drukowania.

Metoda __tostring powinna zwracać ciąg znaków w dokładnie takim formacie:

Account [ID]: Balance = BALANCE

Gdzie ID to identyfikator konta, a BALANCE to bieżące saldo.

Otrzymasz cztery dane wejściowe:

  1. Identyfikator pierwszego konta
  2. Kwota wpłaty na pierwsze konto
  3. Identyfikator drugiego konta
  4. Kwota wpłaty na drugie konto

W głównym pliku utwórz dwa konta z podanymi identyfikatorami, wpłać na każde odpowiednią kwotę, a następnie wydrukuj każde konto bezpośrednio za pomocą print(). Metametoda __tostring zostanie automatycznie wywołana podczas drukowania obiektu konta.

Na przykład, jeśli dane wejściowe to 1001, 500, 1002 i 750, wynikiem powinno być:

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

Każde konto ma teraz własną, unikalną tożsamość i potrafi jasno się opisać: to znacznie bardziej profesjonalna bankowość!

Spróbuj swoich sił

-- Załaduj moduł Account za pomocą require
local Account = require('Account')

-- Wczytaj cztery dane wejściowe
local id1 = io.read()
local deposit1 = tonumber(io.read())
local id2 = io.read()
local deposit2 = tonumber(io.read())

-- Utwórz dwa konta z identyfikatorami
local account1 = Account:new(id1)
local account2 = Account:new(id2)

-- Wpłać odpowiednie kwoty
account1:deposit(deposit1)
account2:deposit(deposit2)

-- Wyświetl każde konto (używa __tostring)
print(account1)
print(account2)

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator Lua online