Sobes.tech
Junior — Middle

Vai objekts-kompanjons ir kopīgs visiem izveidotajiem klases eksemplāriem?

sobes.tech AI

Atbilde no AI

Jā, Kotlin companion object (biedrs objekts) ir kopīgs visiem klases eksemplāriem. Tas ir kāds singleton, kas ir saistīts ar klasi, nevis ar konkrētu tās eksemplāru.

Companion object ļauj definēt funkcijas un īpašības, kuras var izsaukt bez klases eksemplāra izveides, līdzīgi kā statiskās metodes un lauki Java.

Piemērs:

class MyClass {
    companion object {
        val sharedValue = 42
        fun printValue() {
            println("Kopīgā vērtība: $sharedValue")
        }
    }
}

fun main() {
    println(MyClass.sharedValue) // 42
    MyClass.printValue()        // Kopīgā vērtība: 42
}

Šeit sharedValue un printValue ir kopīgi visiem MyClass eksemplāriem.