Skip to content

Latest commit

 

History

History
78 lines (52 loc) · 2 KB

34.md

File metadata and controls

78 lines (52 loc) · 2 KB

Kotlin 伴随对象

原文: https://www.programiz.com/kotlin-programming/companion-objects

在本文中,您将借助示例学习在 Kotlin 程序中创建和使用伴随对象。

在介绍伴随对象之前,让我们以访问类成员的示例为例。

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

fun main(args: Array<String>) {
    val p1 = Person()

    // calling callMe() method using object p1
    p1.callMe()    
}

在这里,我们创建了Person类的对象p1来调用callMe()方法。 这就是正常情况下的工作方式。

但是,在 Kotlin 中,您还可以通过使用类名来调用callMe()方法,即在这种情况下使用Person。 为此,您需要通过使用companion关键字标记对象声明来创建伴随对象。


示例:伴随对象

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

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

运行该程序时,输出为:

I'm called.

在程序中,test对象声明用关键字companion标记,以创建伴随对象。 因此,可以通过使用以下类的名称来调用callMe()方法:

Person.callMe()

伴随对象的名称是可选的,可以省略。

class Person {

    // name of the companion object is omitted
    companion object {
        fun callMe() = println("I'm called.")
    }
}

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

如果您熟悉 Java,则可以将伴随对象与静态方法相关联(即使它们在内部的工作方式完全不同)。

伴随对象可以访问该类的私有成员。 因此,它们可用于实现工厂方法模式