Назад к вопросам
Junior
99
questionbank
Что такое инкапсуляция в объектно-ориентированном программировании (ООП)?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Инкапсуляция — это механизм, объединяющий данные и методы (функции), работающие с этими данными, в единый объект. При этом реализация внутренних деталей объекта скрывается от внешнего мира, предоставляя доступ к данным только через определенный интерфейс (публичные методы).
Основные цели:
- Сокрытие данных: Предотвращает прямой доступ к внутренним состояниям объекта, защищая их от некорректного изменения.
- Контроль доступа: Позволяет определить, какие части объекта доступны извне.
- Управляемость: Упрощает изменение внутренней реализации без влияния на код, использующий этот объект.
- Безопасность: Обеспечивает целостность данных.
Пример на Java:
class BankAccount {
private double balance; // Данные скрыты
public BankAccount(double initialBalance) {
if (initialBalance >= 0) {
this.balance = initialBalance;
} else {
this.balance = 0;
}
}
public double getBalance() { // Публичный метод для доступа
return balance;
}
public void deposit(double amount) { // Публичный метод для изменения
if (amount > 0) {
balance += amount;
}
}
public void withdraw(double amount) { // Публичный метод для изменения
if (amount > 0 && balance >= amount) {
balance -= amount;
}
}
}
// Пример использования
// BankAccount account = new BankAccount(1000);
// double currentBalance = account.getBalance(); // Доступ через метод
// account.deposit(500); // Изменение через метод
// account.balance = -100; // Невозможно напрямую изменить balance