Метод пополнения
Часть раздела Object Oriented Programming путешествия по Lua на Coddy — урок 20 из 70.
Задание
ЛегкоПришло время добавить функциональности вашему Цифровому Банку! Теперь, когда счета могут создаваться с начальным балансом 0, давайте дадим им возможность получать деньги через депозиты.
Опираясь на ваш существующий класс Account, вы добавите метод :deposit(amount), который увеличивает баланс счета на указанную сумму. Это фундаментальная банковская операция — деньги поступают, и баланс растет!
Ваши два файла:
Account.lua: Расширьте свой класс Account, добавив метод:deposit(amount). Этот метод должен прибавлять заданную сумму кself.balance. Сохраните все из предыдущего урока (структуру класса и конструктор:new()).main.lua: Подключите модуль Account, создайте счет, сделайте несколько депозитов и покажите, как меняется баланс.
Вы получите три входных значения:
- Сумма первого депозита
- Сумма второго депозита
- Сумма третьего депозита
В вашем основном файле создайте один счет и выполните три депозита по порядку. После каждого депозита выводите текущий баланс на новой строке.
Например, если входные данные — 100, 50 и 25, вывод должен быть следующим:
100
150
175Обратите внимание, как каждый депозит увеличивает предыдущий баланс — счет начинается с 0, затем вырастает до 100 после первого депозита, до 150 после второго и до 175 после третьего. Ваш метод :deposit() обеспечивает это накопление!
Попробуйте сами
-- Подключить модуль Account
local Account = require('Account')
-- Прочитать три суммы депозита
local deposit1 = tonumber(io.read())
local deposit2 = tonumber(io.read())
local deposit3 = tonumber(io.read())
-- Создать один аккаунт
local account = Account:new()
-- Выполнить три депозита и вывести баланс после каждого
-- TODO: внести deposit1 и вывести account.balance
-- TODO: внести deposit2 и вывести account.balance
-- TODO: внести deposit3 и вывести account.balance
Все уроки раздела Object Oriented Programming
1Концепция 'self'
Таблицы с функциямиЯвный 'self'Синтаксис с двоеточиемТочка против двоеточияИтоги — Движущаяся точка4Проект: Цифровой банк
Настройка проектаМетод пополнения7Полиморфизм и переопределение
Переопределение методовВызов родительских методовУтиная типизацияОбщий интерфейсПроверка типаИтоги — Роли сотрудников2Паттерн прототипа класса
Концепция прототипаСвязывание через __indexКонструктор :new()Инициализация атрибутовНезависимые экземплярыИтоги — Автозавод5Перегрузка операторов в ООП
Сложение объектовВычитание объектовКонкатенация объектовСравнение объектов (<, >)Повторение — Математика кошелька8Инкапсуляция
Соглашения об именованииЗамыкания для приватностиДоступ через замыканияТаблицы только для чтенияЛогика валидацииИтоги — Защищенное хранилище11Паттерны проектирования (Lite)
Фабричные функцииТаблица SingletonПаттерн IteratorObserver (Слушатель)Итоги — Logger Factory3Состояние и поведение объектов
Переменные экземпляраГеттерыСеттерыВычисляемые свойстваФорматирование строкПроверка на равенствоПовторение — Оценка студента6Основы наследования
Настройка наследованияНаследование методовРасширение конструктораДобавление дочерних методовОбщее и уникальноеИтоги: Иерархия фигур