Sobes.tech
Назад к вопросам
Junior — Middle
70

Является ли объект-компаньон общим для всех созданных экземпляров класса?

Компании, где спрашивали
Магнит Тех

Ответ от нейросети

sobes.tech AI

Да, объект-компаньон (companion object) в Kotlin является общим для всех экземпляров класса. Это своего рода синглтон, связанный с классом, а не с конкретным его экземпляром.

Объект-компаньон позволяет определять функции и свойства, которые можно вызывать без создания экземпляра класса, аналогично статическим методам и полям в Java.

Пример:

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

fun main() {
    println(MyClass.sharedValue) // 42
    MyClass.printValue()        // Shared value: 42
}

Здесь sharedValue и printValue общие для всех экземпляров MyClass.