Ответ
Инкапсуляция в Java — это механизм сокрытия внутреннего состояния объекта и деталей реализации, предоставляющий контролируемый доступ через публичный интерфейс.
Основные инструменты:
- Модификаторы доступа:
private,protected,public,package-private(по умолчанию). - Методы доступа (геттеры/сеттеры): Для чтения и модификации приватных полей с возможностью добавления логики.
Пример класса с инкапсуляцией:
public class BankAccount {
// Приватное поле — деталь реализации скрыта
private double balance;
// Публичный геттер для контролируемого доступа
public double getBalance() {
return balance;
}
// Публичный сеттер с валидацией
public void deposit(double amount) {
if (amount > 0) {
this.balance += amount;
} else {
throw new IllegalArgumentException("Amount must be positive");
}
}
}
Преимущества:
- Контроль над данными: Валидация и логика в сеттерах.
- Гибкость реализации: Внутреннюю структуру класса можно менять, не ломая клиентский код.
- Сокрытие сложности: Пользователь класса работает с простым API, не зная внутренней логики.