Junior — Middle
Можете ли да обясните концепцията за скриване на данни вътре в обекти в обектно-ориентираното програмиране?
sobes.tech AI
Отговор от AI
Криптирането на данни (инкапсулация) в обектно-ориентираното програмиране означава ограничаване на достъпа до вътрешните състояния на обекта и предоставяне на достъп до тях само чрез методите (функциите) на обекта.
Това позволява да се защити данните от неправилна употреба и промени отвън, като се запази цялостта на обекта.
Например, в JavaScript (Node.js) могат да се използват частни полета и методи:
class User {
#password; // частно поле
constructor(name, password) {
this.name = name;
this.#password = password;
}
checkPassword(input) {
return input === this.#password;
}
}
const user = new User('Alice', 'secret');
console.log(user.name); // Alice
console.log(user.#password); // Грешка: частно поле
console.log(user.checkPassword('secret')); // true
По този начин, вътрешните данни (например, паролата) са скрити от директен достъп, а взаимодействието с тях става чрез контролирани методи.