junior
Что такое инкапсуляция?
Инкапсуляция — свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе и скрыть детали реализации от пользователя, открыв только необходимый интерфейс.
Цель — отделить внешний интерфейс класса от реализации, чтобы внутренние изменения не влияли на внешнее поведение.
Аналогия: водителю не нужно знать устройство двигателя — он управляет автомобилем через руль и педали. Сложная механика скрыта, а доступен только простой интерфейс.
Пример
Пример
public class Phone {
private int year;
public Phone(int year) {
this.year = year;
}
private void openConnection() {
// внутренняя логика подключения
}
public void call() {
openConnection();
System.out.println("Вызываю номер");
}
public void ring() {
System.out.println("Дзынь-дзынь");
}
}
private— поля и методы доступны только внутри класса. МетодopenConnectionскрыт, и его реализацию можно свободно менять.public— методыcallиringоткрыты для внешнего использования. Предоставление открытых методов — тоже часть инкапсуляции: полностью закрытый объект бесполезен.