Для чего нужна инкапсуляция

«Для чего нужна инкапсуляция» — вопрос из категории ООП, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Инкапсуляция — это принцип ООП, который объединяет данные и методы работы с ними в одном классе, скрывая внутреннюю реализацию от внешнего мира.

Зачем нужна:

  1. Защита данных — предотвращение неконтролируемого изменения состояния объекта.
  2. Упрощение поддержки — изменение внутренней логики класса не влияет на код, который его использует.
  3. Контроль доступа — можно ограничить доступ к полям и методам (private, protected).

Пример:

class User {
    private var _name: String = ""

    fun setName(name: String) {
        if (name.isNotBlank()) {
            _name = name
        }
    }

    fun getName(): String = _name
}

Здесь поле _name скрыто, а доступ к нему контролируется через методы.