Junior
Какво е модификаторът за достъп 'internal' в Kotlin и как да го използваме?
sobes.tech AI
Отговор от AI
Модификаторът за достъп internal в Kotlin означава, че декларацията е видима в рамките на същия модул. Модулът може да бъде набор от Kotlin файлове, компилирани заедно, например:
- Gradle модул (набор от изходен код).
- Maven модул.
- Ant набор от код.
Това е полезно за скриване на детайлите за реализация вътре в модула, като ги прави недостъпни за код от други модули.
internal може да се използва с:
- Класове
- Интерфейси
- Обекти (object)
- Функции
- Свойства
- Конструктори
Пример за използване:
// Модул "module1"
package com.example.module1
internal class InternalClass {
internal fun internalFunction() {
// Този код е видим само вътре в module1
}
}
// Този обект също е видим само вътре в module1
internal object InternalObject {
internal val internalProperty = "Вътрешна стойност"
}
// Модул "module1"
package com.example.module1
fun someFunctionInModule1() {
val internalCls = InternalClass() // Достъпно
internalCls.internalFunction() // Достъпно
println(InternalObject.internalProperty) // Достъпно
}
// Модул "module2"
package com.example.module2
import com.example.module1.InternalClass // Грешка при компилация
import com.example.module1.InternalObject // Грешка при компилация
fun someFunctionInModule2() {
// Не може да създаде екземпляр на InternalClass или да достъпи InternalObject
// val internalCls = InternalClass() // Недостъпно
// println(InternalObject.internalProperty) // Недостъпно
}
Основната разлика спрямо public (видимо навсякъде), private (само вътре в класа) и protected (вътре в класа и неговите подкласове) е именно в нивото на видимост по модули.