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

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

Компании, где спрашивали
МТСМТС
AstonAston
Стилсофт

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

sobes.tech AI

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

Это позволяет:

  • Защитить внутреннее состояние объекта от некорректного использования.
  • Изменять внутреннюю реализацию без влияния на код, который использует объект.

Пример на Python:

class BankAccount:
    def __init__(self, balance):
        self.__balance = balance  # приватный атрибут

    def deposit(self, amount):
        if amount > 0:
            self.__balance += amount

    def withdraw(self, amount):
        if 0 < amount <= self.__balance:
            self.__balance -= amount

    def get_balance(self):
        return self.__balance

account = BankAccount(100)
account.deposit(50)
print(account.get_balance())  # 150
# account.__balance  # Ошибка, доступ запрещён

Здесь атрибут __balance скрыт от прямого доступа, а взаимодействие с ним происходит через методы класса.