Einzahlungen und Auszahlungen
Teil des Abschnitts Objektorientierte Programmierung der JavaScript-Journey von Coddy. Lektion 22 von 56.
Aufgabe
Als Nächstes fügen wir deiner BankAccount-Klasse Transaktionsfunktionen hinzu, indem wir die Methoden deposit() und withdraw() implementieren.
Deine Aufgabe ist es, diese beiden neuen Methoden zur BankAccount-Klasse hinzuzufügen:
1. deposit(amount)-Methode:
- Prüft, ob der
amountpositiv ist (größer als 0) - Wenn gültig:
- Addiert den Betrag zum Kontostand
- Gibt exakt Folgendes aus:
Deposited $${amount}
- Wenn ungültig: Gibt exakt Folgendes aus:
Invalid deposit amount
2. withdraw(amount)-Methode:
- Prüft, ob der
amountpositiv UND kleiner oder gleich dem aktuellen Kontostand ist - Wenn gültig:
- Zieht den Betrag vom Kontostand ab
- Gibt exakt Folgendes aus:
Withdrew $${amount}
- Wenn ungültig: Gibt exakt Folgendes aus:
Invalid withdrawal amount or insufficient funds
Probier es selbst
import { BankAccount } from './bankAccount.js';
// Teste die Implementierung
const testAccount = new BankAccount('Alex Johnson', 500);
console.log('Initial state:');
console.log(testAccount.getAccountInfo()); // "Alex Johnson: $500"
testAccount.deposit(200); // Gibt aus: "Deposited $200"
console.log('New balance:', testAccount.getBalance()); // 700
testAccount.deposit(-50); // Gibt aus: "Invalid deposit amount"
console.log('Balance unchanged:', testAccount.getBalance()); // 600
testAccount.withdraw(100); // Gibt aus: "Withdrew $100"
console.log('New balance:', testAccount.getBalance()); // 600
testAccount.withdraw(800); // Gibt aus: "Invalid withdrawal amount or insufficient funds"
console.log('Balance unchanged:', testAccount.getBalance()); // 600
Alle Lektionen in Objektorientierte Programmierung
1Objekte & das this-Schlüsselwort
Kurze Wiederholung: ObjekteMethoden zu Objekten hinzufügenDas this-Schlüsselwort verstehenKonstruktorfunktionenDas new-SchlüsselwortWiederholungs-Challenge7Vererbung & das extends-Schlüsselwort
VererbungDie „ist-ein“-BeziehungDas extends-SchlüsselwortDie super()-MethodeVererben von Eigenschaften & MethodenWiederholungs-Challenge10Polymorphie
Was ist Polymorphie?Geerbte Methoden überschreibenVerwendung von superWiederholungs-Challenge13Komposition vs. Vererbung
Die "hat-ein"- vs. "ist-ein"-BeziehungDie Grenzen tiefer VererbungObjekte zusammenbauen2Code organisieren
Was sind Module?Exportieren mit exportImportieren mit importDefault- vs. benannte Exports5Kapselung & Zugriff
KapselungÖffentliche & private KlassenfelderPrivate MethodenWiederholungs-Herausforderung8OOP-Code strukturieren
Klassen in Modulen organisieren11Projekt: Ein Shape-Renderer
Setup: Shape-Klasse & ExportCircle-Klasse: VererbungOverriding & Area-MethodeStatischer Shape-Zähler14Bibliotheksverwaltungssystem
Entwurf der BibliothekBuch-Klasse mit KompositionValidierung der Buchautoren3Klassen & Objekte
Was ist eine Klasse?Instanzen erstellenEigenschaften und MethodenWiederholungs-Challenge6Projekt: Ein einfaches Bankkonto
Klasse BankAccountEinzahlungen und AuszahlungenKontostand als privates Feld9Statische Methoden & Eigenschaften
Klassenebene vs. InstanzebeneStatische EigenschaftenStatische HilfsmethodenWiederholungs-Challenge12Getter & Setter
Die Schlüsselwörter get und setBerechnete EigenschaftenValidierung und SeiteneffekteWiederholungs-Challenge15Abschluss-Herausforderungen
Spielfiguren-BuilderE-Commerce ProduktsystemUniversitäts-VerwaltungssystemSmart-Home-GerätesystemÜbe selbstständig: Online-JavaScript-Compiler