Défi : Implémentation de Propriétés Privées dans une Classe
Tâche
Vous créez une classe BankAccount
pour gérer les comptes bancaires des utilisateurs de manière sécurisée. Chaque compte a un propriétaire et un solde, mais vous souhaitez que le solde soit protégé contre l'accès direct. Votre objectif est d'utiliser des propriétés privées pour empêcher les modifications non intentionnelles du solde tout en permettant un accès contrôlé via des méthodes.
- Propriété Privée du Solde:
- À l'intérieur de la classe
BankAccount
, déclarez une propriété privée#balance
.
- À l'intérieur de la classe
- Constructeur:
- Le constructeur doit accepter
owner
etinitialBalance
comme paramètres; - Assignez
owner
à une propriété publique etinitialBalance
à la propriété privée#balance
.
- Le constructeur doit accepter
- Ajouter des Méthodes:
- deposit: Définissez une méthode qui prend
amount
comme paramètre. Si le montant est supérieur à 0, il doit ajouteramount
à#balance
; - withdraw: Définissez une méthode qui prend
amount
comme paramètre. Si le montant est supérieur à 0 et inférieur ou égal à#balance
, il doit soustraireamount
de#balance
; - getBalance: Définissez une méthode qui retourne une chaîne avec le nom du propriétaire et le solde du compte, par exemple,
"Account balance for John: $1500"
.
- deposit: Définissez une méthode qui prend
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);
- Déclarez une propriété privée
#balance
dans la classeBankAccount
; - Dans le constructeur, assignez
owner
à une propriété publique etinitialBalance
à la propriété privée#balance
; - Définissez une méthode
deposit
qui prendamount
comme paramètre. Vérifiez siamount
est supérieur à 0, puis ajoutezamount
à#balance
; - Définissez une méthode
withdraw
qui prendamount
comme paramètre. Vérifiez siamount
est supérieur à 0 et inférieur ou égal à#balance
, puis soustrayezamount
de#balance
; - Définissez une méthode
getBalance
qui renvoie une chaîne avec le nom du propriétaire et le solde du compte.
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);
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 2.22
Défi : Implémentation de Propriétés Privées dans une Classe
Glissez pour afficher le menu
Tâche
Vous créez une classe BankAccount
pour gérer les comptes bancaires des utilisateurs de manière sécurisée. Chaque compte a un propriétaire et un solde, mais vous souhaitez que le solde soit protégé contre l'accès direct. Votre objectif est d'utiliser des propriétés privées pour empêcher les modifications non intentionnelles du solde tout en permettant un accès contrôlé via des méthodes.
- Propriété Privée du Solde:
- À l'intérieur de la classe
BankAccount
, déclarez une propriété privée#balance
.
- À l'intérieur de la classe
- Constructeur:
- Le constructeur doit accepter
owner
etinitialBalance
comme paramètres; - Assignez
owner
à une propriété publique etinitialBalance
à la propriété privée#balance
.
- Le constructeur doit accepter
- Ajouter des Méthodes:
- deposit: Définissez une méthode qui prend
amount
comme paramètre. Si le montant est supérieur à 0, il doit ajouteramount
à#balance
; - withdraw: Définissez une méthode qui prend
amount
comme paramètre. Si le montant est supérieur à 0 et inférieur ou égal à#balance
, il doit soustraireamount
de#balance
; - getBalance: Définissez une méthode qui retourne une chaîne avec le nom du propriétaire et le solde du compte, par exemple,
"Account balance for John: $1500"
.
- deposit: Définissez une méthode qui prend
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);
- Déclarez une propriété privée
#balance
dans la classeBankAccount
; - Dans le constructeur, assignez
owner
à une propriété publique etinitialBalance
à la propriété privée#balance
; - Définissez une méthode
deposit
qui prendamount
comme paramètre. Vérifiez siamount
est supérieur à 0, puis ajoutezamount
à#balance
; - Définissez une méthode
withdraw
qui prendamount
comme paramètre. Vérifiez siamount
est supérieur à 0 et inférieur ou égal à#balance
, puis soustrayezamount
de#balance
; - Définissez une méthode
getBalance
qui renvoie une chaîne avec le nom du propriétaire et le solde du compte.
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);
Merci pour vos commentaires !