Menu
Coddy logo textTech

Информация о счете

Часть раздела Object Oriented Programming путешествия по Lua на Coddy — урок 23 из 70.

challenge icon

Задание

Легко

Ваш Цифровой Банк становится более профессиональным! Теперь давайте сделаем так, чтобы ваши счета красиво отображались при выводе на печать. Добавив метаметод __tostring, вы сможете точно контролировать, как выглядит счет — показывая как ID счета, так и текущий баланс в чистом, читаемом формате.

Вы продолжите работу над существующими файлами:

  • Account.lua: Расширьте свой класс Account двумя новыми функциями:
    • Измените конструктор :new(), чтобы он принимал параметр id, который идентифицирует каждый счет
    • Добавьте метаметод __tostring, который возвращает отформатированную строку с информацией о счете
    Сохраните всю существующую функциональность (методы deposit, withdraw и getBalance).
  • main.lua: Создайте счета с ID и продемонстрируйте, как они отображаются при печати.

Метод __tostring должен возвращать строку именно в таком формате:

Account [ID]: Balance = BALANCE

Где ID — это идентификатор счета, а BALANCE — текущий баланс.

Вы получите четыре входных значения:

  1. ID первого счета
  2. Сумма депозита для первого счета
  3. ID второго счета
  4. Сумма депозита для второго счета

В основном файле создайте два счета с указанными ID, внесите соответствующие суммы на каждый из них, а затем распечатайте каждый счет напрямую с помощью print(). Метаметод __tostring будет автоматически вызван при печати объекта счета.

Например, если входные данные — 1001, 500, 1002 и 750, вывод должен быть следующим:

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

Теперь каждый счет имеет уникальный идентификатор и может четко описывать себя — гораздо более профессиональный банковский опыт!

Попробуйте сами

-- Подключить модуль Account
local Account = require('Account')

-- Прочитать четыре входных значения
local id1 = io.read()
local deposit1 = tonumber(io.read())
local id2 = io.read()
local deposit2 = tonumber(io.read())

-- Создать два аккаунта с ID
local account1 = Account:new(id1)
local account2 = Account:new(id2)

-- Внести соответствующие суммы
account1:deposit(deposit1)
account2:deposit(deposit2)

-- Вывести каждый аккаунт (использует __tostring)
print(account1)
print(account2)

Все уроки раздела Object Oriented Programming