Модификатор internal
Модификатор internal ограничивает область видимости
класса, интерфейса, функции или свойства пределами текущего модуля.
Это означает, что элемент, помеченный как internal,
будет доступен только внутри того же модуля, где он объявлен,
но не будет доступен из других модулей проекта.
Синтаксис
internal class ClassName { }
internal interface InterfaceName { }
internal fun functionName() { }
internal val propertyName: Type = value
internal var propertyName: Type = value
Пример
Объявление internal класса:
internal class DatabaseHelper {
fun connect() {
println("Connected to database")
}
}
Пример
Объявление internal функции:
internal fun validateInput(input: String): Boolean {
return input.isNotEmpty()
}
Пример
Объявление internal свойства:
internal val apiKey: String = "secret-key-12345"
internal var counter: Int = 0
Пример
Использование internal класса внутри того же модуля:
internal class Logger {
fun log(message: String) {
println("LOG: $message")
}
}
val logger = Logger()
logger.log("Application started")
Результат выполнения кода:
LOG: Application started
Пример
Комбинирование internal с другими модификаторами:
internal data class User(val name: String, val age: Int)
internal open class BaseService { }
internal object Config {
val timeout: Int = 5000
}