W tym artykule nauczysz się tworzyć i używać obiektów towarzyszących w programie Kotlin za pomocą przykładów.
Zanim zajmiemy się obiektami towarzyszącymi, weźmy przykład dostępu do członków klasy.
class Person ( fun callMe() = println("I'm called.") ) fun main(args: Array) ( val p1 = Person() // calling callMe() method using object p1 p1.callMe() )
Tutaj stworzyliśmy obiekt p1 klasy Person do wywołania callMe()
metody. Tak to zwykle działa.
Jednak w Kotlinie możesz również wywołać callMe()
metodę używając nazwy klasy, czyli w tym przypadku Person. W tym celu należy utworzyć obiekt towarzyszący, oznaczając deklarację obiektu companion
słowem kluczowym.
Przykład: obiekty towarzyszące
class Person ( companion object Test ( fun callMe() = println("I'm called.") ) ) fun main(args: Array) ( Person.callMe() )
Po uruchomieniu programu wynik będzie następujący:
Nazywam się.
W programie deklaracja obiektu Test jest oznaczana słowem kluczowym companion, aby utworzyć obiekt towarzyszący. Stąd możliwe jest wywołanie callMe()
metody używając nazwy klasy jako:
Person.callMe ()
Nazwa obiektu towarzyszącego jest opcjonalna i można ją pominąć.
class Person ( // name of the companion object is omitted companion object ( fun callMe() = println("I'm called.") ) ) fun main(args: Array) ( Person.callMe() )
Jeśli znasz Javę, możesz powiązać obiekty towarzyszące z metodami statycznymi (nawet jeśli ich wewnętrzne działanie jest zupełnie inne).
Obiekty towarzyszące mają dostęp do prywatnych członków klasy. W związku z tym mogą być używane do implementacji wzorców metod fabrycznych.