Назад к вопросам
Junior
112
questionbank
Как в Kotlin создать статическую переменную?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В Kotlin нет прямого аналога ключевого слова static из Java. Вместо этого используются:
companion object: Для создания "статических" членов класса (полей и методов). Они привязаны к классу, а не к конкретному экземпляру.- Пакетные функции и свойства: Объявляются на верхнем уровне файла (
Top-level declarations) и доступны из любого места без необходимости квалификации именем класса.
Пример с companion object:
class MyClass {
companion object {
const val TAG = "MyClass" // Константа времени компиляции (как final static в Java)
var instanceCount = 0 // Переменная, связанная с классом
}
init {
instanceCount++
}
}
Пример с пакетными свойствами:
// В файле MyGlobals.kt
const val GLOBAL_CONST = "This is a global constant"
var globalCounter = 0
fun incrementGlobalCounter() {
globalCounter++
}
Различия и выбор:
companion objectподходит для членов, логически связанных с классом.- Пакетные члены удобны для общих утилит, констант или переменных, не привязанных к конкретному классу.
- Для констант времени компиляции используйте
const valвнутриcompanion objectили как пакетную декларацию.