Пополнение и снятие средств
Часть раздела Объектно-ориентированное программирование путешествия по JavaScript на Coddy. Урок 22 из 56.
Задание
Далее мы добавим функциональность выполнения транзакций в класс BankAccount, реализовав методы deposit() и withdraw().
Твоя задача — добавить эти два новых метода в класс BankAccount:
1. Метод deposit(amount):
- Проверяет, является ли
amountположительным числом (больше 0) - Если значение допустимо:
- Прибавляет сумму к балансу
- Выводит в точности:
Deposited $${amount}
- Если значение недопустимо: Выводит в точности:
Invalid deposit amount
2. Метод withdraw(amount):
- Проверяет, является ли
amountположительным числом И меньше ли он или равен текущему балансу - Если значение допустимо:
- Вычитает сумму из баланса
- Выводит в точности:
Withdrew $${amount}
- Если значение недопустимо: Выводит в точности:
Invalid withdrawal amount or insufficient funds
Попробуйте сами
import { BankAccount } from './bankAccount.js';
// Проверка реализации
const testAccount = new BankAccount('Alex Johnson', 500);
console.log('Initial state:');
console.log(testAccount.getAccountInfo()); // "Alex Johnson: $500"
testAccount.deposit(200); // Выводит в консоль: "Deposited $200"
console.log('New balance:', testAccount.getBalance()); // 700
testAccount.deposit(-50); // Выводит в консоль: "Invalid deposit amount"
console.log('Balance unchanged:', testAccount.getBalance()); // 600
testAccount.withdraw(100); // Выводит в консоль: "Withdrew $100"
console.log('New balance:', testAccount.getBalance()); // 600
testAccount.withdraw(800); // Выводит в консоль: "Invalid withdrawal amount or insufficient funds"
console.log('Balance unchanged:', testAccount.getBalance()); // 600
Все уроки раздела Объектно-ориентированное программирование
1Объекты и ключевое слово this
Краткий обзор: ОбъектыДобавление методов в объектыПонимание ключевого слова thisФункции-конструкторыКлючевое слово newИтоговое испытание7Наследование и ключевое слово extends
НаследованиеОтношение «is-a»Ключевое слово extendsМетод super()Наследование свойств и методовИтоговое испытание10Полиморфизм
Что такое полиморфизм?Переопределение унаследованных методовИспользование superИтоговое задание13Композиция против наследования
Отношения «has-a» и «is-a»Ограничения глубокого наследованияСоздание объектов2Организация кода
Что такое модули?Экспорт с помощью exportИмпорт с помощью importDefault против именованных экспортов5Инкапсуляция и доступ
ИнкапсуляцияПубличные и приватные поля классовПриватные методыЗадание на повторение8Организация кода ООП
Организация классов в модули11Проект: Отрисовщик фигур
Настройка: Класс Shape и экспортНаследование класса CircleПереопределение и метод AreaСтатический счетчик фигур14Система управления библиотекой
Проектирование библиотекиКласс Book с использованием композицииВалидация автора книги6Проект: Простой банковский счет
Класс BankAccountПополнение и снятие средствБаланс как приватное поле9Статические методы и свойства
Уровень класса против уровня экземпляраСтатические свойстваСтатические вспомогательные методыЗадание на закреплениеПотренируйтесь самостоятельно: Онлайн-компилятор JavaScript