Sobes.tech
Junior — Middle

L'oggetto compagno è comune a tutte le istanze create della classe?

sobes.tech AI

Risposta dell'AI

Sì, l'oggetto companion (companion object) in Kotlin è condiviso da tutte le istanze della classe. È una sorta di singleton associato alla classe, non a una sua istanza specifica.

L'oggetto companion permette di definire funzioni e proprietà che possono essere chiamate senza creare un'istanza della classe, simile ai metodi e campi statici in Java.

Esempio:

class MyClass {
    companion object {
        val sharedValue = 42
        fun printValue() {
            println("Valore condiviso: $sharedValue")
        }
    }
}

fun main() {
    println(MyClass.sharedValue) // 42
    MyClass.printValue()        // Valore condiviso: 42
}

Qui, sharedValue e printValue sono condivisi da tutte le istanze di MyClass.