Для чего нужен internal модификатор доступа

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

Ответ

internal в Kotlin ограничивает видимость элемента текущим модулем (например, одним Gradle-модулем в Android). Это полезно для:

  1. Сокрытия реализации – код доступен только внутри модуля, но не снаружи.
  2. Безопасности – предотвращает случайное использование внутренних компонентов другими модулями.

Пример:

// В модуле :core
internal class DatabaseHelper { ... }  

// В другом модуле – ошибка компиляции:  
// val db = DatabaseHelper() // Unresolved reference  

Используется для логического разделения кода между модулями, например, для :core или :data.