Junior
Kuidas luua Kotlinis staatiline muutuja?
sobes.tech AI
Vastus AI-lt
Kohalikus ekvivalenti Java static märksõnale Kotlinis ei ole otse olemas. Selle asemel kasutatakse:
companion object: Klassisiseste liikmete (väljade ja meetodite) loomiseks. Need on seotud klassiga, mitte konkreetse eksemplariga.- Paketitasandi funktsioonid ja omadused: Deklareerivad faili kõrgel tasemel (
Top-level declarations) ja on kättesaadavad igal pool ilma klassi nime kvalifitseerimata.
Näide companion object-iga:
class MyClass {
companion object {
const val TAG = "MyClass" // Kompileerimise ajal konstantne väärtus (nagu final static Java-s)
var instanceCount = 0 // Muutuja, mis on seotud klassiga
}
init {
instanceCount++
}
}
Näide paketitasandi omadustest:
// Failis MyGlobals.kt
const val GLOBAL_CONST = "This is a global constant"
var globalCounter = 0
fun incrementGlobalCounter() {
globalCounter++
}
Erinevused ja valik:
companion objectsobib liikmetele, mis on loogiliselt seotud klassiga.- Paketitasandi liikmed on kasulikud üldiste utiliitfunktsioonide, konstantide või muutujate jaoks, mis ei ole seotud konkreetse klassiga.
- Kompileerimise ajal konstantide jaoks kasutage
const valcompanion object-i sees või paketdeklaratsioonina.