亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

Kotlin 伴生對(duì)象(Companion)

在本文中,您將借助示例學(xué)習(xí)在Kotlin程序中創(chuàng)建和使用伴生對(duì)象。

在討論伴生對(duì)象之前,讓我們以一個(gè)示例來(lái)訪問(wèn)類的成員。

class Person {
    fun callMe() = println("I'm called.")
}

fun main(args: Array<String>) {
    val p1 = Person()
    
    //使用對(duì)象p1調(diào)用callMe()方法
    p1.callMe()    
}

在這里,我們創(chuàng)建了 Person 類的一個(gè)對(duì)象 p1 來(lái)調(diào)用 callMe ()方法。

但是,在 Kotlin,您也可以通過(guò)使用類名(即本示例中的 Person)來(lái)調(diào)用 callMe ()方法。為此,您需要通過(guò)使用 companion 關(guān)鍵字標(biāo)記對(duì)象聲明對(duì)象聲明來(lái)創(chuàng)建一個(gè)伴生對(duì)象。

示例:伴生對(duì)象

class Person {
    companion object Test {
        fun callMe() = println("I'm called.")
    }
}

fun main(args: Array<String>) {
    Person.callMe()
}

運(yùn)行該程序時(shí),輸出為:

I'm called.

在程序中,Test對(duì)象聲明用關(guān)鍵字標(biāo)記companion以創(chuàng)建伴生對(duì)象。因此,可以callMe()通過(guò)使用以下類的名稱來(lái)調(diào)用method:

Person.callMe()

伴生對(duì)象的名稱是可選的,可以省略。

class Person {
    
    //省略了伴生對(duì)象的名稱
    companion object {
        fun callMe() = println("I'm called.")
    }
}

fun main(args: Array<String>) {
    Person.callMe()
}

如果您熟悉Java,您可能會(huì)將伴隨對(duì)象與靜態(tài)方法關(guān)聯(lián)起來(lái)(即使它們的內(nèi)部工作方式完全不同)

伴生對(duì)象可以訪問(wèn)該類的私有成員。因此,它們可用于實(shí)現(xiàn)工廠方法模式。