Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Завдання: Реалізація приватних властивостей у класі | Володіння Класами Та Наслідуванням У JavaScript
Просунуте Володіння JavaScript

bookЗавдання: Реалізація приватних властивостей у класі

Завдання

Створюється клас BankAccount для безпечного керування банківськими рахунками користувачів. Кожен рахунок має власника та баланс, але необхідно захистити баланс від прямого доступу. Мета — використати приватні властивості для запобігання небажаним змінам балансу, забезпечивши контрольований доступ через методи.

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

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 8

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

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

bookЗавдання: Реалізація приватних властивостей у класі

Свайпніть щоб показати меню

Завдання

Створюється клас BankAccount для безпечного керування банківськими рахунками користувачів. Кожен рахунок має власника та баланс, але необхідно захистити баланс від прямого доступу. Мета — використати приватні властивості для запобігання небажаним змінам балансу, забезпечивши контрольований доступ через методи.

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

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 8
some-alt