V tomto článku se naučíte vytvářet a používat doprovodné objekty ve vašem programu Kotlin pomocí příkladů.
Než se podíváme na doprovodné objekty, pojďme si vzít příklad pro přístup k členům třídy.
class Person ( fun callMe() = println("I'm called.") ) fun main(args: Array) ( val p1 = Person() // calling callMe() method using object p1 p1.callMe() )
Zde jsme vytvořili objekt p1 metody Person třídy pro volání callMe()
metody. Takhle věci normálně fungují.
V Kotlinu však můžete callMe()
metodu zavolat také pomocí názvu třídy, v tomto případě tedy Person. K tomu musíte vytvořit doprovodný objekt označením deklarace objektu companion
klíčovým slovem.
Příklad: Doprovodné objekty
class Person ( companion object Test ( fun callMe() = println("I'm called.") ) ) fun main(args: Array) ( Person.callMe() )
Když spustíte program, výstup bude:
Říkají mi.
V programu je deklarace testovacího objektu označena doprovodným klíčovým slovem pro vytvoření doprovodného objektu. Proto je možné volat callMe()
metodu pomocí názvu třídy jako:
Person.callMe ()
Název doprovodného objektu je volitelný a lze jej vynechat.
class Person ( // name of the companion object is omitted companion object ( fun callMe() = println("I'm called.") ) ) fun main(args: Array) ( Person.callMe() )
Pokud znáte prostředí Java, můžete spojit doprovodné objekty se statickými metodami (i když to, jak fungují interně, je úplně jiné).
Doprovodné objekty mají přístup k soukromým členům třídy. Proto je lze použít k implementaci vzorů továrních metod.