Gymterview
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 открыты для внешнего использования. Предоставление открытых методов — тоже часть инкапсуляции: полностью закрытый объект бесполезен.