Sobes.tech
Junior

Hogyan hozhatunk létre statikus változót Kotlinben?

sobes.tech MI

Válasz az MI-től

Kotlinban nincs közvetlen megfelelője a Java static kulcsszónak. Ehelyett a következőket használják:

  • companion object: A "statikus" osztálytagok (mezők és metódusok) létrehozásához. Ezek a osztályhoz kötöttek, nem egy konkrét példányhoz.
  • Csomagszintű függvények és tulajdonságok: A fájl felső szintjén vannak deklarálva (Top-level declarations), és bárhonnan elérhetők anélkül, hogy az osztály nevével kellene kvalifikálni őket.

Példa companion object-tel:

class MyClass {
    companion object {
        const val TAG = "MyClass" // Fordítási időben állandó (mint a final static Java-ban)
        var instanceCount = 0 // Osztályhoz kötött változó
    }

    init {
        instanceCount++
    }
}

Példa csomag szintű tulajdonságokra:

// A MyGlobals.kt fájlban
const val GLOBAL_CONST = "This is a global constant"
var globalCounter = 0

fun incrementGlobalCounter() {
    globalCounter++
}

Különbségek és választás:

  • A companion object alkalmas olyan tagokra, amelyek logikailag kapcsolódnak az osztályhoz.
  • A csomag szintű tagok hasznosak általános segédprogramok, állandók vagy nem egy adott osztályhoz kötött változók számára.
  • Fordítási időben állandókhoz használja a const val-t a companion object-en belül vagy csomag deklarációként.