京东云服务器推荐配置、多种配置选择,满足不同业务需求!

热门推荐

⭐ 稳定入门选择

配置:2核2G/5M

适用场景:个人站点 / 轻量应用

特点:性价比高,稳定可靠

¥19/月
立即购买
流量友好

☁️ 轻量云主机

配置:2核4G 5M

适用场景:小型业务 / 博客 / 测试环境

特点:流量友好,性能均衡

¥149/年
立即购买
高性能

💻 云服务主机

配置:4核16G 8M

适用场景:中小型服务 / 多并发场景

特点:充足内存与带宽,性能强劲

¥750/年
立即购买
新人专享

🎁 新人福利

新人访问 → 点击 → 最新活动

可获取 3000元 礼券

立即领取
移动端 / Kotlin 教程 / Kotlin 面向对象(OOP)
Kotlin 伴生对象(Companion)
Kotlin 扩展函数Kotlin 对象(Object)

Kotlin 伴生对象(Companion)

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

在讨论伴生对象之前,让我们以一个示例来访问类的成员。

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

fun main(args: Array<String>) {
    val p1 = Person()
    
    //使用对象p1调用callMe()方法
    p1.callMe()    
}

在这里,我们创建了 Person 类的一个对象 p1 来调用 callMe ()方法。

但是,在 Kotlin,您也可以通过使用类名(即本示例中的 Person)来调用 callMe ()方法。为此,您需要通过使用 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()通过使用以下类的名称来调用method:

Person.callMe()

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

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

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

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

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

Kotlin 扩展函数Kotlin 对象(Object)