Sobes.tech
Back to questions
Junior — Middle
89

Можешь привести пример использования инкапсуляции в объектно-ориентированном программировании?

Answer from AI

sobes.tech AI

Инкапсуляция — это принцип ООП, который позволяет скрыть внутренние детали реализации объекта и предоставлять доступ к данным и методам через публичный интерфейс.

Пример на JavaScript (Node.js):

class BankAccount {
  #balance; // приватное поле

  constructor(initialBalance) {
    this.#balance = initialBalance;
  }

  deposit(amount) {
    if (amount > 0) {
      this.#balance += amount;
    }
  }

  withdraw(amount) {
    if (amount > 0 && amount <= this.#balance) {
      this.#balance -= amount;
      return amount;
    }
    return 0;
  }

  getBalance() {
    return this.#balance;
  }
}

const account = new BankAccount(1000);
account.deposit(500);
console.log(account.getBalance()); // 1500
// Нельзя напрямую изменить баланс:
// account.#balance = 100000; // Ошибка

Здесь поле #balance скрыто от внешнего доступа, что защищает данные от некорректного изменения.