Kotlin 伴生對象(Companion)

在本文中,您將借助示例學習在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)工廠方法模式。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清