Sobes.tech
Назад к вопросам
Junior — Middle
101

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

Ответ от нейросети

sobes.tech AI

Инкапсуляция — это принцип объектно-ориентированного программирования, который заключается в объединении данных (свойств) и методов, работающих с этими данными, внутри одного объекта или класса. Она позволяет скрыть внутреннее состояние объекта и предоставить доступ к нему только через определённые методы (геттеры и сеттеры), что защищает данные от прямого изменения извне.

Например, в JavaScript можно сделать приватное свойство с помощью символа или использовать соглашение с подчёркиванием:

class User {
  #password; // приватное поле

  constructor(name, password) {
    this.name = name;
    this.#password = password;
  }

  checkPassword(input) {
    return input === this.#password;
  }
}

const user = new User('Alice', '12345');
console.log(user.name); // Alice
console.log(user.#password); // Ошибка, доступ запрещён
console.log(user.checkPassword('12345')); // true

Таким образом, инкапсуляция помогает контролировать доступ к данным, повышает безопасность и упрощает поддержку кода.