Sobes.tech
Junior — Middle

Мақсади объекти companion дар забони Kotlin чист?

sobes.tech AI

Ҷавоб аз AI

Дар Kotlin, объект companion истифода мешавад барои эълон кардани объект ҳамроҳ дар дохили синф. Ин имкон медиҳад, ки аъзои статикӣ (усулҳо ва хосиятҳо) эҷод карда шаванд, ки ба синф тааллуқ доранд, на ба намунаи махсус.

Объекти ҳамроҳ ҳамчун singleton, ки бо синф алоқаманд аст, амал мекунад ва аъзои он метавонанд тавассути номи синф даъват шаванд, бе эҷоди объект.

Масалан:

class MyClass {
    companion object {
        fun create(): MyClass = MyClass()
        const val CONSTANT = 42
    }
}

fun main() {
    val instance = MyClass.create()  // даъвати усули ҳамроҳ
    println(MyClass.CONSTANT)        // дастрасӣ ба константаи ҳамроҳ
}

Бинобар ин, companion object иваз мекунад аъзои статикӣ, ки дар Kotlin вуҷуд надоранд, ва имкон медиҳад, ки функсияҳо ва маълумоти марбут ба синфро ба таври қулай гурӯҳбандӣ кард.