Junior
Kotlin'da statik o'zgaruvchi qanday yaratish mumkin?
sobes.tech AI
AIdan javob
Kotlinda Java'dagi static kalit so'zining to'g'ridan-to'g'ri ekvivalenti yo'q. O'rniga quyidagilar ishlatiladi:
companion object: Sinfning "statik" a'zolarini (maydonlar va metodlar) yaratish uchun. Ular sinfga bog'liq, aniq nusxaga emas.- Paket darajasidagi funksiyalar va xususiyatlar: Faylning yuqori darajasida (
Top-level declarations) e'lon qilinadi va sinfni nom bilan sifatlash shart emas, istalgan joydan kirish mumkin.
companion object bilan misol:
class MyClass {
companion object {
const val TAG = "MyClass" // Kompilyatsiya vaqtidagi konstant (Java'dagi final static kabi)
var instanceCount = 0 // Sinf bilan bog'liq o'zgaruvchi
}
init {
instanceCount++
}
}
Paket xususiyatlari bilan misol:
// MyGlobals.kt faylida
const val GLOBAL_CONST = "This is a global constant"
var globalCounter = 0
fun incrementGlobalCounter() {
globalCounter++
}
Farqlar va tanlov:
companion objectsinf bilan mantiqiy bog'liq bo'lgan a'zolar uchun mos keladi.- Paket a'zolari umumiy utilitar, konstantalar yoki aniq sinfga bog'liq bo'lmagan o'zgaruvchilar uchun qulay.
- Kompilyatsiya vaqtidagi konstantalar uchun,
const valnicompanion objectichida yoki paket deklaratsiyasi sifatida foydalaning.