Модификатор internal

Модификатор internal ограничивает область видимости класса, интерфейса, функции или свойства пределами текущего модуля. Это означает, что элемент, помеченный как internal, будет доступен только внутри того же модуля, где он объявлен, но не будет доступен из других модулей проекта.

Синтаксис

kotlininternal class ClassName { }
kotlininternal interface InterfaceName { }
kotlininternal fun functionName() { }
kotlininternal val propertyName: Type = value
kotlininternal var propertyName: Type = value

Пример

Объявление internal класса:

kotlininternal class DatabaseHelper {
  fun connect() {
    println("Connected to database")
  }
}

Пример

Объявление internal функции:

kotlininternal fun validateInput(input: String): Boolean {
  return input.isNotEmpty()
}

Пример

Объявление internal свойства:

kotlininternal val apiKey: String = "secret-key-12345"
internal var counter: Int = 0

Пример

Использование internal класса внутри того же модуля:

kotlininternal class Logger {
  fun log(message: String) {
    println("LOG: $message")
  }
}

val logger = Logger()
logger.log("Application started")

Результат выполнения кода:

kotlinLOG: Application started

Пример

Комбинирование internal с другими модификаторами:

kotlininternal data class User(val name: String, val age: Int)
internal open class BaseService { }
internal object Config {
  val timeout: Int = 5000
}

Смотрите также

  • модификатор public,
    который делает элемент доступным отовсюду
  • модификатор private,
    который ограничивает видимость пределами класса или файла
  • модификатор protected,
    который ограничивает видимость пределами класса и его наследников
  • ключевое слово class,
    которое используется для объявления классов