Back to questions
Junior — Middle
102
Можете объяснить концепцию инкапсуляции в объектно-ориентированном программировании?
Answer from AI
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
Таким образом, инкапсуляция помогает контролировать доступ к данным, повышает безопасность и упрощает поддержку кода.