Wpłaty i wypłaty
Część sekcji Programowanie obiektowe ścieżki JavaScript w Coddy. Lekcja 22 z 56.
Wyzwanie
Następnie dodajemy funkcjonalność transakcji do klasy BankAccount, implementując metody deposit() i withdraw().
Twoim zadaniem jest dodanie tych dwóch nowych metod do klasy BankAccount:
1. metoda <strong>deposit(amount)</strong>:
- Sprawdza, czy
amountjest dodatnie (większe od 0) - Jeśli jest poprawne:
- Dodaje tę kwotę do salda
- Dokładnie wyświetla:
Deposited $${amount}
- Jeśli jest niepoprawne: Dokładnie wyświetla:
Invalid deposit amount
2. metoda <strong>withdraw(amount)</strong>:
- Sprawdza, czy
amountjest dodatnie ORAZ mniejsze lub równe bieżącemu saldu - Jeśli jest poprawne:
- Odejmuje tę kwotę od salda
- Dokładnie wyświetla:
Withdrew $${amount}
- Jeśli jest niepoprawne: Dokładnie wyświetla:
Invalid withdrawal amount or insufficient funds
Spróbuj swoich sił
import { BankAccount } from './bankAccount.js';
// Przetestuj implementację
const testAccount = new BankAccount('Alex Johnson', 500);
console.log('Initial state:');
console.log(testAccount.getAccountInfo()); // "Alex Johnson: $500"
testAccount.deposit(200); // Wypisuje w konsoli: "Deposited $200"
console.log('New balance:', testAccount.getBalance()); // 700
testAccount.deposit(-50); // Wypisuje w konsoli: "Invalid deposit amount"
console.log('Balance unchanged:', testAccount.getBalance()); // 600
testAccount.withdraw(100); // Wypisuje w konsoli: "Withdrew $100"
console.log('New balance:', testAccount.getBalance()); // 600
testAccount.withdraw(800); // Wypisuje w konsoli: "Invalid withdrawal amount or insufficient funds"
console.log('Balance unchanged:', testAccount.getBalance()); // 600
Wszystkie lekcje w sekcji Programowanie obiektowe
1Obiekty i słowo kluczowe this
Szybka powtórka: obiektyDodawanie metod do obiektówZrozumienie słowa kluczowego thisFunkcje konstruktoraSłowo kluczowe newWyzwanie podsumowujące7Dziedziczenie i słowo kluczowe extends
DziedziczenieRelacja „jest rodzajem”Słowo kluczowe extendsMetoda super()Dziedziczenie właściwości i metodWyzwanie podsumowujące10Polimorfizm
Czym jest polimorfizm?Nadpisywanie odziedziczonych metodUżywanie superWyzwanie podsumowujące13Kompozycja a dziedziczenie
Relacja „ma” a relacja „jest”Ograniczenia głębokiego dziedziczeniaTworzenie obiektów2Organizowanie kodu
Czym są moduły?Eksportowanie za pomocą exportImportowanie za pomocą importEksporty domyślne a nazwane5Enkapsulacja i dostęp
EnkapsulacjaPubliczne i prywatne pola klasyMetody prywatneWyzwanie podsumowujące8Organizowanie kodu OOP
Organizowanie klas w moduły11Projekt: Renderer kształtów
Konfiguracja: klasa Shape i eksportDziedziczenie klasy CircleNadpisywanie i metoda obliczania polaStatyczny licznik kształtów14System zarządzania biblioteką
Projektowanie bibliotekiKlasa Book z kompozycjąWalidacja autora książki9Metody i właściwości statyczne
Poziom klasy a poziom instancjiWłaściwości statyczneStatyczne metody pomocniczeWyzwanie podsumowującePoćwicz samodzielnie: Kompilator JavaScript online