Sobes.tech
Junior

Чӣ тавр тағйирёбандаи статикӣ дар Kotlin эҷод кардан мумкин аст?

sobes.tech AI

Ҷавоб аз AI

В Kotlin нема директен еквивалент на клучната реч static од Јава. Наместо тоа, се користат:

  • companion object: За создавање на "статички" членови на класата (полја и методи). Тие се поврзани со класата, а не со конкретен примерок.
  • Функции и својства на ниво на пакет: Декларирани на највисоко ниво во фајлот (Top-level declarations) и достапни од каде било без потреба од квалификација со името на класата.

Пример со companion object:

class MyClass {
    companion object {
        const val TAG = "MyClass" // Константа во време на компилација (као final static во Јава)
        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 или како декларација на пакет.