Sobes.tech
Junior — Middle

Kas objekti-kaaslane on ühine kõigi klassi loodud eksemplaride jaoks?

sobes.tech AI

Vastus AI-lt

Jah, Kotlinis on companion object (kaaslane objekt) ühine kõigi klassi eksemplaride jaoks. See on teatud tüüpi singleton, mis on seotud klassiga, mitte konkreetse selle eksemplariga.

Companion object võimaldab määratleda funktsioone ja omadusi, mida saab kutsuda ilma klassi eksemplari loomata, sarnaselt Java staatilistele meetoditele ja väljadele.

Näide:

class MyClass {
    companion object {
        val sharedValue = 42
        fun printValue() {
            println("Jagatud väärtus: $sharedValue")
        }
    }
}

fun main() {
    println(MyClass.sharedValue) // 42
    MyClass.printValue()        // Jagatud väärtus: 42
}

Siin on sharedValue ja printValue ühised kõigi MyClass eksemplaride jaoks.