Junior
Kotlinдеги companion object жөнүндө айтып бериңиз.
sobes.tech AI
AIден жооп
Kotlin'de companion object sinf üzvlərini (xüsusiyyətlər və funksiyalar) təyin etmək üçün istifadə olunur və onlara sinf nümunəsi yaratmadan daxil olmaq imkanı verir. Bu, Java'dakı statik üzvlərin ekvivalentidir, lakin sinif daxilində obyekt kimi həyata keçirilmişdir.
Əsas xüsusiyyətlər:
- Yeganə nümunə: Sinf daxilində yalnız bir
companion objectola bilər. - İlkinləşdirmə: Sinif ilk yükləndikdə ilkinləşdirilir.
- Xüsusi üzvlərə giriş: Xarici sinfin xüsusi üzvlərinə giriş imkanı verir.
- Adlandırma: Əsasən
Companionadını alır, lakin açıq şəkildə adlandırıla bilər. - İnterfeysləri həyata keçirmək: İnterfeysləri həyata keçirə bilər.
İstifadə nümunəsi:
class MyClass {
companion object {
const val TAG = "MyClass" // Daimi
fun createInstance(): MyClass { // Fabrika metodu
return MyClass()
}
}
fun doSomething() {
println("Bir şey edir...")
}
}
fun main() {
println(MyClass.TAG) // companion object üzvünə giriş
val instance = MyClass.createInstance() // Fabrika metodundan istifadə
instance.doSomething()
}
Üstünlüklər:
- Daha semantiç: Əlaqəli "statik" üzvləri tək bir yerdə qruplaşdırmağa imkan verir.
- Əlçatanlıq: İnterfeysləri həyata keçirə bilər, bu da dizayn nümunələri üçün faydalıdır.
- Xüsusi üzvlərə giriş: Fabrika metodları və singleton'ların sinf daxilində həyata keçirilməsini asanlaşdırır.