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
ownerjainitialBalance; - Aseta
ownerjulkiseksi ominaisuudeksi jainitialBalanceyksityiseen#balance-ominaisuuteen.
- Konstruktori ottaa parametreina
- Lisää metodit:
- deposit: Määrittele metodi, joka ottaa parametrina
amount. Jos määrä on suurempi kuin 0, lisääamountarvoon#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äamountarvosta#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
#balanceBankAccount-luokkaan; - Konstruktoriin asetetaan
ownerjulkiseksi ominaisuudeksi jainitialBalanceyksityiseen#balance-ominaisuuteen; - Määrittele
deposit-metodi, joka ottaa parametrinaamount. Tarkista, ettäamounton suurempi kuin 0, ja lisää sittenamountarvoon#balance; - Määrittele
withdraw-metodi, joka ottaa parametrinaamount. Tarkista, ettäamounton suurempi kuin 0 ja pienempi tai yhtä suuri kuin#balance, ja vähennä sittenamountarvosta#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
ownerjainitialBalance; - Aseta
ownerjulkiseksi ominaisuudeksi jainitialBalanceyksityiseen#balance-ominaisuuteen.
- Konstruktori ottaa parametreina
- Lisää metodit:
- deposit: Määrittele metodi, joka ottaa parametrina
amount. Jos määrä on suurempi kuin 0, lisääamountarvoon#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äamountarvosta#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
#balanceBankAccount-luokkaan; - Konstruktoriin asetetaan
ownerjulkiseksi ominaisuudeksi jainitialBalanceyksityiseen#balance-ominaisuuteen; - Määrittele
deposit-metodi, joka ottaa parametrinaamount. Tarkista, ettäamounton suurempi kuin 0, ja lisää sittenamountarvoon#balance; - Määrittele
withdraw-metodi, joka ottaa parametrinaamount. Tarkista, ettäamounton suurempi kuin 0 ja pienempi tai yhtä suuri kuin#balance, ja vähennä sittenamountarvosta#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!