Sobes.tech
Junior

Kotlin-də statik dəyişən necə yaradılır?

sobes.tech Süni İntellekt

AI-dan cavab

Kotlin-də Java-dakı static açar sözünün birbaşa ekvivalenti yoxdur. Əvəzinə, istifadə olunur:

  • companion object: Sinifin "statik" üzvlərini (sahələr və metodlar) yaratmaq üçün. Onlar sinifə bağlıdır, müəyyən bir nümunəyə deyil.
  • Paket səviyyəsində funksiyalar və xüsusiyyətlər: Faylın ən yuxarı səviyyəsində (Top-level declarations) elan edilir və sinif adını kvalifikasiya etməyə ehtiyac olmadan hər yerdən əlçatan olur.

companion object ilə nümunə:

class MyClass {
    companion object {
        const val TAG = "MyClass" // Kompilyasiya vaxtı sabit (Java-dakı final static kimi)
        var instanceCount = 0 // Siniflə əlaqəli dəyişən
    }

    init {
        instanceCount++
    }
}

Paket xüsusiyyətləri ilə nümunə:

// MyGlobals.kt faylında
const val GLOBAL_CONST = "This is a global constant"
var globalCounter = 0

fun incrementGlobalCounter() {
    globalCounter++
}

Fərqlər və seçim:

  • companion object siniflə məntiqi əlaqəli üzvlər üçün uyğundur.
  • Paket üzvləri ümumi utilitlər, sabitlər və ya müəyyən sinfə bağlı olmayan dəyişənlər üçün əlverişlidir.
  • Kompilyasiya vaxtı sabitlər üçün, const val istifadə edin, ya companion object daxilində, ya da paket bəyanatı kimi.