Udfordring: Implementering af Private Egenskaber i en Klasse
Opgave
Du opretter en BankAccount-klasse til sikker håndtering af brugeres bankkonti. Hver konto har en ejer og en saldo, men du ønsker, at saldoen skal være beskyttet mod direkte adgang. Målet er at bruge private egenskaber for at forhindre utilsigtede ændringer af saldoen, samtidig med at kontrolleret adgang tillades gennem metoder.
- Privat saldo-egenskab:
- Inde i
BankAccount-klassen erklæres en privat egenskab#balance.
- Inde i
- Konstruktør:
- Konstruktøren skal acceptere
owneroginitialBalancesom parametre; - Tildel
ownertil en offentlig egenskab oginitialBalancetil den private#balance-egenskab.
- Konstruktøren skal acceptere
- Tilføj metoder:
- deposit: Definer en metode, der tager
amountsom parameter. Hvis beløbet er større end 0, skal læggeamounttil#balance; - withdraw: Definer en metode, der tager
amountsom parameter. Hvis beløbet er større end 0 og mindre end eller lig med#balance, skal trækkeamountfra#balance; - getBalance: Definer en metode, der returnerer en streng med ejerens navn og kontosaldoen, f.eks.
"Account balance for John: $1500".
- deposit: Definer en metode, der tager
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);
- Erklær en privat egenskab
#balanceiBankAccount-klassen; - I konstruktøren tildeles
ownertil en offentlig egenskab oginitialBalancetil den private#balance-egenskab; - Definer en
deposit-metode, der tageramountsom parameter. Kontroller, omamounter større end 0, og læg derefteramounttil#balance; - Definer en
withdraw-metode, der tageramountsom parameter. Kontroller, omamounter større end 0 og mindre end eller lig med#balance, og træk derefteramountfra#balance; - Definer en
getBalance-metode, der returnerer en streng med ejerens navn og kontosaldoen.
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);
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 2.22
Udfordring: Implementering af Private Egenskaber i en Klasse
Stryg for at vise menuen
Opgave
Du opretter en BankAccount-klasse til sikker håndtering af brugeres bankkonti. Hver konto har en ejer og en saldo, men du ønsker, at saldoen skal være beskyttet mod direkte adgang. Målet er at bruge private egenskaber for at forhindre utilsigtede ændringer af saldoen, samtidig med at kontrolleret adgang tillades gennem metoder.
- Privat saldo-egenskab:
- Inde i
BankAccount-klassen erklæres en privat egenskab#balance.
- Inde i
- Konstruktør:
- Konstruktøren skal acceptere
owneroginitialBalancesom parametre; - Tildel
ownertil en offentlig egenskab oginitialBalancetil den private#balance-egenskab.
- Konstruktøren skal acceptere
- Tilføj metoder:
- deposit: Definer en metode, der tager
amountsom parameter. Hvis beløbet er større end 0, skal læggeamounttil#balance; - withdraw: Definer en metode, der tager
amountsom parameter. Hvis beløbet er større end 0 og mindre end eller lig med#balance, skal trækkeamountfra#balance; - getBalance: Definer en metode, der returnerer en streng med ejerens navn og kontosaldoen, f.eks.
"Account balance for John: $1500".
- deposit: Definer en metode, der tager
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);
- Erklær en privat egenskab
#balanceiBankAccount-klassen; - I konstruktøren tildeles
ownertil en offentlig egenskab oginitialBalancetil den private#balance-egenskab; - Definer en
deposit-metode, der tageramountsom parameter. Kontroller, omamounter større end 0, og læg derefteramounttil#balance; - Definer en
withdraw-metode, der tageramountsom parameter. Kontroller, omamounter større end 0 og mindre end eller lig med#balance, og træk derefteramountfra#balance; - Definer en
getBalance-metode, der returnerer en streng med ejerens navn og kontosaldoen.
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);
Tak for dine kommentarer!