Herausforderung: Private Eigenschaften in Einer Klasse Implementieren
Aufgabe
Sie erstellen eine BankAccount-Klasse, um die Bankkonten der Benutzer sicher zu verwalten. Jedes Konto hat einen Besitzer und ein Guthaben, aber das Guthaben soll vor direktem Zugriff geschützt werden. Ziel ist es, private Eigenschaften zu verwenden, um unbeabsichtigte Änderungen am Guthaben zu verhindern und gleichzeitig einen kontrollierten Zugriff über Methoden zu ermöglichen.
- Private Guthabeneigenschaft:
- Deklarieren Sie innerhalb der Klasse
BankAccounteine private Eigenschaft#balance.
- Deklarieren Sie innerhalb der Klasse
- Konstruktor:
- Der Konstruktor soll
ownerundinitialBalanceals Parameter akzeptieren; - Weisen Sie
ownereiner öffentlichen Eigenschaft undinitialBalanceder privaten Eigenschaft#balancezu.
- Der Konstruktor soll
- Methoden hinzufügen:
- deposit: Definieren Sie eine Methode, die
amountals Parameter übernimmt. Wenn der Betrag größer als 0 ist, sollamountzu#balanceaddiert werden; - withdraw: Definieren Sie eine Methode, die
amountals Parameter übernimmt. Wenn der Betrag größer als 0 und kleiner oder gleich#balanceist, sollamountvon#balancesubtrahiert werden; - getBalance: Definieren Sie eine Methode, die einen String mit dem Namen des Besitzers und dem Kontostand zurückgibt, z. B.
"Account balance for John: $1500".
- deposit: Definieren Sie eine Methode, die
123456789101112131415161718192021222324252627282930313233343536class BankAccount { #_____; // Declare private property constructor(owner, initialBalance) { this._____ = owner; this.#_____ = initialBalance; } deposit(_____) { if (_____) { this.#_____ += _____; } } withdraw(_____) { if (_____ && _____) { this.#_____ -= _____; } } getBalance() { return `Account balance for ${this._____}: $${this.#_____}`; } } // Testing const account1 = new BankAccount('Alice', 1000); account1.deposit(500); console.log(account1.getBalance()); // Expected: Account balance for Alice: $1500 account1.withdraw(300); console.log(account1.getBalance()); // Expected: Account balance for Alice: $1200 // Attempt direct access (should cause an error) // console.log(account1.#balance);
- Deklarieren Sie eine private Eigenschaft
#balancein der KlasseBankAccount; - Weisen Sie im Konstruktor
ownereiner öffentlichen Eigenschaft undinitialBalanceder privaten Eigenschaft#balancezu; - Definieren Sie eine Methode
deposit, dieamountals Parameter übernimmt. Prüfen Sie, obamountgrößer als 0 ist, und addieren Sie dannamountzu#balance; - Definieren Sie eine Methode
withdraw, dieamountals Parameter übernimmt. Prüfen Sie, obamountgrößer als 0 und kleiner oder gleich#balanceist, und subtrahieren Sie dannamountvon#balance; - Definieren Sie eine Methode
getBalance, die einen String mit dem Namen des Besitzers und dem Kontostand zurückgibt.
123456789101112131415161718192021222324252627282930313233343536class BankAccount { #balance; // Declare private property constructor(owner, initialBalance) { this.owner = owner; this.#balance = initialBalance; } deposit(amount) { if (amount > 0) { this.#balance += amount; } } withdraw(amount) { if (amount > 0 && amount <= this.#balance) { this.#balance -= amount; } } getBalance() { return `Account balance for ${this.owner}: $${this.#balance}`; } } // Testing const account1 = new BankAccount('Alice', 1000); account1.deposit(500); console.log(account1.getBalance()); // Output: Account balance for Alice: $1500 account1.withdraw(300); console.log(account1.getBalance()); // Output: Account balance for Alice: $1200 // Attempt direct access (should cause an error) // console.log(account1.#balance);
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you explain how private properties work in JavaScript classes?
What happens if I try to access the #balance property directly from outside the class?
Can you show how to add error handling for invalid deposit or withdrawal amounts?
Awesome!
Completion rate improved to 2.22
Herausforderung: Private Eigenschaften in Einer Klasse Implementieren
Swipe um das Menü anzuzeigen
Aufgabe
Sie erstellen eine BankAccount-Klasse, um die Bankkonten der Benutzer sicher zu verwalten. Jedes Konto hat einen Besitzer und ein Guthaben, aber das Guthaben soll vor direktem Zugriff geschützt werden. Ziel ist es, private Eigenschaften zu verwenden, um unbeabsichtigte Änderungen am Guthaben zu verhindern und gleichzeitig einen kontrollierten Zugriff über Methoden zu ermöglichen.
- Private Guthabeneigenschaft:
- Deklarieren Sie innerhalb der Klasse
BankAccounteine private Eigenschaft#balance.
- Deklarieren Sie innerhalb der Klasse
- Konstruktor:
- Der Konstruktor soll
ownerundinitialBalanceals Parameter akzeptieren; - Weisen Sie
ownereiner öffentlichen Eigenschaft undinitialBalanceder privaten Eigenschaft#balancezu.
- Der Konstruktor soll
- Methoden hinzufügen:
- deposit: Definieren Sie eine Methode, die
amountals Parameter übernimmt. Wenn der Betrag größer als 0 ist, sollamountzu#balanceaddiert werden; - withdraw: Definieren Sie eine Methode, die
amountals Parameter übernimmt. Wenn der Betrag größer als 0 und kleiner oder gleich#balanceist, sollamountvon#balancesubtrahiert werden; - getBalance: Definieren Sie eine Methode, die einen String mit dem Namen des Besitzers und dem Kontostand zurückgibt, z. B.
"Account balance for John: $1500".
- deposit: Definieren Sie eine Methode, die
123456789101112131415161718192021222324252627282930313233343536class BankAccount { #_____; // Declare private property constructor(owner, initialBalance) { this._____ = owner; this.#_____ = initialBalance; } deposit(_____) { if (_____) { this.#_____ += _____; } } withdraw(_____) { if (_____ && _____) { this.#_____ -= _____; } } getBalance() { return `Account balance for ${this._____}: $${this.#_____}`; } } // Testing const account1 = new BankAccount('Alice', 1000); account1.deposit(500); console.log(account1.getBalance()); // Expected: Account balance for Alice: $1500 account1.withdraw(300); console.log(account1.getBalance()); // Expected: Account balance for Alice: $1200 // Attempt direct access (should cause an error) // console.log(account1.#balance);
- Deklarieren Sie eine private Eigenschaft
#balancein der KlasseBankAccount; - Weisen Sie im Konstruktor
ownereiner öffentlichen Eigenschaft undinitialBalanceder privaten Eigenschaft#balancezu; - Definieren Sie eine Methode
deposit, dieamountals Parameter übernimmt. Prüfen Sie, obamountgrößer als 0 ist, und addieren Sie dannamountzu#balance; - Definieren Sie eine Methode
withdraw, dieamountals Parameter übernimmt. Prüfen Sie, obamountgrößer als 0 und kleiner oder gleich#balanceist, und subtrahieren Sie dannamountvon#balance; - Definieren Sie eine Methode
getBalance, die einen String mit dem Namen des Besitzers und dem Kontostand zurückgibt.
123456789101112131415161718192021222324252627282930313233343536class BankAccount { #balance; // Declare private property constructor(owner, initialBalance) { this.owner = owner; this.#balance = initialBalance; } deposit(amount) { if (amount > 0) { this.#balance += amount; } } withdraw(amount) { if (amount > 0 && amount <= this.#balance) { this.#balance -= amount; } } getBalance() { return `Account balance for ${this.owner}: $${this.#balance}`; } } // Testing const account1 = new BankAccount('Alice', 1000); account1.deposit(500); console.log(account1.getBalance()); // Output: Account balance for Alice: $1500 account1.withdraw(300); console.log(account1.getBalance()); // Output: Account balance for Alice: $1200 // Attempt direct access (should cause an error) // console.log(account1.#balance);
Danke für Ihr Feedback!