Завдання: Реалізація приватних властивостей у класі
Завдання
Створюється клас BankAccount для безпечного керування банківськими рахунками користувачів. Кожен рахунок має власника та баланс, але необхідно захистити баланс від прямого доступу. Мета — використати приватні властивості для запобігання небажаним змінам балансу, забезпечивши контрольований доступ через методи.
- Приватна властивість балансу:
- Усередині класу
BankAccountоголосити приватну властивість#balance.
- Усередині класу
- Конструктор:
- Конструктор має приймати параметри
ownerтаinitialBalance; - Присвоїти
ownerпублічній властивості, аinitialBalance— приватній властивості#balance.
- Конструктор має приймати параметри
- Додавання методів:
- deposit: Описати метод, який приймає параметр
amount. Якщо значення більше 0, додатиamountдо#balance; - withdraw: Описати метод, який приймає параметр
amount. Якщо значення більше 0 та менше або дорівнює#balance, віднятиamountвід#balance; - getBalance: Описати метод, який повертає рядок з іменем власника та балансом рахунку, наприклад:
"Account balance for John: $1500".
- deposit: Описати метод, який приймає параметр
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);
- Оголосити приватну властивість
#balanceу класіBankAccount; - У конструкторі присвоїти
ownerпублічній властивості, аinitialBalance— приватній властивості#balance; - Описати метод
deposit, який приймає параметрamount. Перевірити, чиamountбільше 0, після чого додатиamountдо#balance; - Описати метод
withdraw, який приймає параметрamount. Перевірити, чиamountбільше 0 та менше або дорівнює#balance, після чого віднятиamountвід#balance; - Описати метод
getBalance, який повертає рядок з іменем власника та балансом рахунку.
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);
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
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
Завдання: Реалізація приватних властивостей у класі
Свайпніть щоб показати меню
Завдання
Створюється клас BankAccount для безпечного керування банківськими рахунками користувачів. Кожен рахунок має власника та баланс, але необхідно захистити баланс від прямого доступу. Мета — використати приватні властивості для запобігання небажаним змінам балансу, забезпечивши контрольований доступ через методи.
- Приватна властивість балансу:
- Усередині класу
BankAccountоголосити приватну властивість#balance.
- Усередині класу
- Конструктор:
- Конструктор має приймати параметри
ownerтаinitialBalance; - Присвоїти
ownerпублічній властивості, аinitialBalance— приватній властивості#balance.
- Конструктор має приймати параметри
- Додавання методів:
- deposit: Описати метод, який приймає параметр
amount. Якщо значення більше 0, додатиamountдо#balance; - withdraw: Описати метод, який приймає параметр
amount. Якщо значення більше 0 та менше або дорівнює#balance, віднятиamountвід#balance; - getBalance: Описати метод, який повертає рядок з іменем власника та балансом рахунку, наприклад:
"Account balance for John: $1500".
- deposit: Описати метод, який приймає параметр
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);
- Оголосити приватну властивість
#balanceу класіBankAccount; - У конструкторі присвоїти
ownerпублічній властивості, аinitialBalance— приватній властивості#balance; - Описати метод
deposit, який приймає параметрamount. Перевірити, чиamountбільше 0, після чого додатиamountдо#balance; - Описати метод
withdraw, який приймає параметрamount. Перевірити, чиamountбільше 0 та менше або дорівнює#balance, після чого віднятиamountвід#balance; - Описати метод
getBalance, який повертає рядок з іменем власника та балансом рахунку.
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);
Дякуємо за ваш відгук!