Объекты-компаньоны Kotlin

Содержание

В этой статье вы научитесь создавать и использовать сопутствующие объекты в вашей программе Kotlin с помощью примеров.

Прежде чем переходить к объектам-компаньонам, давайте рассмотрим пример доступа к членам класса.

 class Person ( fun callMe() = println("I'm called.") ) fun main(args: Array) ( val p1 = Person() // calling callMe() method using object p1 p1.callMe() ) 

Здесь мы создали объект p1 класса Person для вызова callMe()метода. Вот как все обычно работает.

Однако в Kotlin вы также можете вызвать callMe()метод, используя имя класса, то есть в данном случае Person. Для этого вам необходимо создать сопутствующий объект, пометив объявление объекта companionключевым словом.

Пример: сопутствующие объекты

 class Person ( companion object Test ( fun callMe() = println("I'm called.") ) ) fun main(args: Array) ( Person.callMe() ) 

Когда вы запустите программу, вывод будет:

 Меня зовут.

В программе объявление тестового объекта помечается ключевым словом companion для создания сопутствующего объекта. Следовательно, можно вызвать callMe()метод, используя имя класса как:

 Person.callMe ()

Имя сопутствующего объекта необязательно и может быть опущено.

 class Person ( // name of the companion object is omitted companion object ( fun callMe() = println("I'm called.") ) ) fun main(args: Array) ( Person.callMe() )

Если вы знакомы с Java, вы можете связать объекты-компаньоны со статическими методами (даже если их внутренняя работа полностью отличается).

Сопутствующие объекты могут иметь доступ к закрытым членам класса. Следовательно, их можно использовать для реализации шаблонов фабричных методов.

Интересные статьи...