tgoop.com/mobileproglib/5686
Create:
Last Update:
Last Update:
👾 Это база: companion object (также Singleton)
Объекты можно объявлять внутри класса, при этом нет каких-либо ограничений по их количеству. Но только один объект можно пометить ключевым словом companion object
в рамках одного класса.
Синглтон-свойство companion object
достигается за счет того, что он создается внутри класса в качестве статического поля. Он будет инициализирован при первом обращении к нему или при создании первого экземпляра класса, в котором он объявлен.
Важно отметить, что companion object
будет инициализирован первым, а затем уже будет создан экземпляр класса:
class MyClass {
init {
// Выполняется всегда после инициализации companion object
}
companion object {
init {
// Выполняется всегда перед блоком init содержащего класса
}}}
val myClass = MyClass()
Такому объекту можно не указывать свое имя, и обращаться к методам и свойствам объекта через имя содержащего его класса без явного указания имени объекта.
class SomeClass {
companion object {
fun create()
}
}
val someClass = SomeClass.create()
Компилируется в
public static final class
на Java. Работает подобно ключевому слову static
в Java.Библиотека мобильного разработчика #буст
BY Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck
Share with your friend now:
tgoop.com/mobileproglib/5686