Haaste: Toteuta Yksityiset Ominaisuudet Luokassa
Tehtävä
Laadi BankAccount
-luokka käyttäjien pankkitilien turvalliseen hallintaan. Jokaisella tilillä on omistaja ja saldo, mutta haluat suojata saldon suoralta käytöltä. Tavoitteena on käyttää yksityisiä ominaisuuksia estämään saldon tahattomat muutokset ja sallia hallittu pääsy metodien kautta.
- Yksityinen saldo-ominaisuus:
- Määrittele
BankAccount
-luokan sisällä yksityinen ominaisuus#balance
.
- Määrittele
- Konstruktori:
- Konstruktori ottaa parametreina
owner
jainitialBalance
; - Aseta
owner
julkiseksi ominaisuudeksi jainitialBalance
yksityiseen#balance
-ominaisuuteen.
- Konstruktori ottaa parametreina
- Lisää metodit:
- deposit: Määrittele metodi, joka ottaa parametrina
amount
. Jos määrä on suurempi kuin 0, lisääamount
arvoon#balance
; - withdraw: Määrittele metodi, joka ottaa parametrina
amount
. Jos määrä on suurempi kuin 0 ja pienempi tai yhtä suuri kuin#balance
, vähennäamount
arvosta#balance
; - getBalance: Määrittele metodi, joka palauttaa merkkijonon, jossa on omistajan nimi ja tilin saldo, esim.
"Account balance for John: $1500"
.
- deposit: Määrittele metodi, joka ottaa parametrina
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);
- Määrittele yksityinen ominaisuus
#balance
BankAccount
-luokkaan; - Konstruktoriin asetetaan
owner
julkiseksi ominaisuudeksi jainitialBalance
yksityiseen#balance
-ominaisuuteen; - Määrittele
deposit
-metodi, joka ottaa parametrinaamount
. Tarkista, ettäamount
on suurempi kuin 0, ja lisää sittenamount
arvoon#balance
; - Määrittele
withdraw
-metodi, joka ottaa parametrinaamount
. Tarkista, ettäamount
on suurempi kuin 0 ja pienempi tai yhtä suuri kuin#balance
, ja vähennä sittenamount
arvosta#balance
; - Määrittele
getBalance
-metodi, joka palauttaa merkkijonon, jossa on omistajan nimi ja tilin saldo.
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);
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 2.22
Haaste: Toteuta Yksityiset Ominaisuudet Luokassa
Pyyhkäise näyttääksesi valikon
Tehtävä
Laadi BankAccount
-luokka käyttäjien pankkitilien turvalliseen hallintaan. Jokaisella tilillä on omistaja ja saldo, mutta haluat suojata saldon suoralta käytöltä. Tavoitteena on käyttää yksityisiä ominaisuuksia estämään saldon tahattomat muutokset ja sallia hallittu pääsy metodien kautta.
- Yksityinen saldo-ominaisuus:
- Määrittele
BankAccount
-luokan sisällä yksityinen ominaisuus#balance
.
- Määrittele
- Konstruktori:
- Konstruktori ottaa parametreina
owner
jainitialBalance
; - Aseta
owner
julkiseksi ominaisuudeksi jainitialBalance
yksityiseen#balance
-ominaisuuteen.
- Konstruktori ottaa parametreina
- Lisää metodit:
- deposit: Määrittele metodi, joka ottaa parametrina
amount
. Jos määrä on suurempi kuin 0, lisääamount
arvoon#balance
; - withdraw: Määrittele metodi, joka ottaa parametrina
amount
. Jos määrä on suurempi kuin 0 ja pienempi tai yhtä suuri kuin#balance
, vähennäamount
arvosta#balance
; - getBalance: Määrittele metodi, joka palauttaa merkkijonon, jossa on omistajan nimi ja tilin saldo, esim.
"Account balance for John: $1500"
.
- deposit: Määrittele metodi, joka ottaa parametrina
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);
- Määrittele yksityinen ominaisuus
#balance
BankAccount
-luokkaan; - Konstruktoriin asetetaan
owner
julkiseksi ominaisuudeksi jainitialBalance
yksityiseen#balance
-ominaisuuteen; - Määrittele
deposit
-metodi, joka ottaa parametrinaamount
. Tarkista, ettäamount
on suurempi kuin 0, ja lisää sittenamount
arvoon#balance
; - Määrittele
withdraw
-metodi, joka ottaa parametrinaamount
. Tarkista, ettäamount
on suurempi kuin 0 ja pienempi tai yhtä suuri kuin#balance
, ja vähennä sittenamount
arvosta#balance
; - Määrittele
getBalance
-metodi, joka palauttaa merkkijonon, jossa on omistajan nimi ja tilin saldo.
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);
Kiitos palautteestasi!