Sobes.tech
Назад к вопросам
Junior — Middle
70

Объясните смысл и основную функцию инкапсуляции в объектно-ориентированном программировании.

Ответ от нейросети

sobes.tech AI

Инкапсуляция — это принцип объектно-ориентированного программирования, который заключается в объединении данных (переменных) и методов, работающих с этими данными, в единый объект, а также в сокрытии внутренней реализации объекта от внешнего мира.

Основная функция инкапсуляции — защитить внутреннее состояние объекта от прямого доступа и изменения извне, предоставляя контролируемый интерфейс через методы (геттеры и сеттеры). Это повышает безопасность, упрощает поддержку и позволяет изменять внутреннюю реализацию без влияния на внешний код.

Пример на Java:

public class Person {
    private String name; // скрытое поле

    public String getName() { // контролируемый доступ
        return name;
    }

    public void setName(String name) {
        if(name != null && !name.isEmpty()) {
            this.name = name;
        }
    }
}

Здесь поле name недоступно напрямую, что предотвращает некорректное присвоение.