Menu
Coddy logo textTech

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

Часть раздела Объектно-ориентированное программирование путешествия по 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)

Все уроки раздела Объектно-ориентированное программирование

Потренируйтесь самостоятельно: Онлайн-компилятор Lua