Назад к вопросам
МТС
Aston
Junior — Middle
71
Можете объяснить концепцию инкапсуляции в объектно-ориентированном программировании?
Компании, где спрашивали
Стилсофт
Ответ от нейросети
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 скрыт от прямого доступа, а взаимодействие с ним происходит через методы класса.