在本文中,您將借助示例學習在Kotlin程序中創(chuàng)建和使用伴生對象。
class Person { fun callMe() = println("I'm called.") } fun main(args: Array<String>) { val p1 = Person() //使用對象p1調用callMe()方法 p1.callMe() }
在這里,我們創(chuàng)建了 Person 類的一個對象 p1 來調用 callMe ()方法。
但是,在 Kotlin,您也可以通過使用類名(即本示例中的 Person)來調用 callMe ()方法。為此,您需要通過使用 companion 關鍵字標記對象聲明對象聲明來創(chuàng)建一個伴生對象。
class Person { companion object Test { fun callMe() = println("I'm called.") } } fun main(args: Array<String>) { Person.callMe() }
運行該程序時,輸出為:
I'm called.
在程序中,Test對象聲明用關鍵字標記companion以創(chuàng)建伴生對象。因此,可以callMe()通過使用以下類的名稱來調用method:
Person.callMe()
伴生對象的名稱是可選的,可以省略。
class Person { //省略了伴生對象的名稱 companion object { fun callMe() = println("I'm called.") } } fun main(args: Array<String>) { Person.callMe() }
如果您熟悉Java,您可能會將伴隨對象與靜態(tài)方法關聯(lián)起來(即使它們的內部工作方式完全不同)
伴生對象可以訪問該類的私有成員。因此,它們可用于實現(xiàn)工廠方法模式。