Sobes.tech
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

По този начин, вътрешните данни (например, паролата) са скрити от директен достъп, а взаимодействието с тях става чрез контролирани методи.