Sobes.tech
Junior

Kotlinде статикалык өзгөрмө кантип түзүлөт?

sobes.tech AI

AIден жооп

Котлинде Javaнын static ачкыч сөзүнүн түз эквиваленти жок. Анын ордуна колдонулат:

  • companion object: Класстын "статикалык" мүчөлөрүн ( талаалар жана методдор) түзүү үчүн. Алар класс менен байланыштуу, конкреттүү нускамадан эмес.
  • Пакет деңгээлиндеги функциялар жана мүнөздөмөлөр: Файлдын жогорку деңгээлинде (Top-level declarations) жарыяланат жана класс атын квалификациялоого муктаж болбостон, каалаган жерден жеткиликтүү.

companion object менен мисал:

class MyClass {
    companion object {
        const val TAG = "MyClass" // Компиляция убакытындагы туруктуу (Javaда 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 ичинде же пакет декларациясы катары пайдаланыңыз.