Junior — Middle
Обектът-компаньон е общ за всички създадени екземпляри на класа ли?
sobes.tech AI
Отговор от AI
Да, companion object (обект-компаньон) в Kotlin е споделен за всички екземпляри на класа. Това е вид сингълтън, свързан с класа, а не с конкретен негов екземпляр.
Обект-компаньонът позволява да дефинирате функции и свойства, които могат да бъдат извикани без създаване на екземпляр на класа, подобно на статичните методи и полета в Java.
Пример:
class MyClass {
companion object {
val sharedValue = 42
fun printValue() {
println("Споделена стойност: $sharedValue")
}
}
}
fun main() {
println(MyClass.sharedValue) // 42
MyClass.printValue() // Споделена стойност: 42
}
Тук sharedValue и printValue са споделени за всички екземпляри на MyClass.