Junior
Pasakokite apie companion objektą Kotlin'e.
sobes.tech AI
Atsakymas iš AI
companion object Kotlin'e naudojamas apibrėžti klasės narius (savybes ir funkcijas), kurie yra bendri visiems tos klasės egzemplioriams, taip pat jiems pasiekti be klasės egzemplioriaus kūrimo. Tai iš esmės yra statinių narių ekvivalentas Java, bet įgyvendintas kaip objektas klasės viduje.
Pagrindinės savybės:
- Vienas egzempliorius: Klasės viduje gali būti tik vienas
companion object. - Inicijavimas: Inicijuojamas pirmojo įkėlimo metu.
- Prieiga prie privačių narių: Turi prieigą prie išorinės klasės privačių narių.
- Pavadinimas: Pagal numatytuosius nustatymus turi pavadinimą
Companion, bet gali būti aiškiai pavadintas. - Interfeisų įgyvendinimas: Gali įgyvendinti interfeisus.
Pavyzdys:
class MyClass {
companion object {
const val TAG = "MyClass" // Konstanta
fun createInstance(): MyClass { // Gamybos metodas
return MyClass()
}
}
fun doSomething() {
println("Darydamas kažką...")
}
}
fun main() {
println(MyClass.TAG) // Pasiekti companion object narį
val instance = MyClass.createInstance() // Naudoti gamybos metodą
instance.doSomething()
}
Privalumai:
- Daugiau semantikos: Leidžia grupuoti susijusius "statinius" narius vienoje vietoje.
- Lankstumas: Gali įgyvendinti interfeisus, kas naudinga projektavimo šablonams.
- Prieiga prie privačių narių: Supaprastina gamybos metodų ir singleton'ų įgyvendinimą klasės viduje.