当前位置:嗨网首页>书籍在线阅读

09-扩展伴生对象

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

6.2.5 扩展伴生对象

与Java相比,Kotlin并没有提供静态方法,大多数情况下,官方建议使用更简单的包级函数或在类中声明一个伴生对象。使用这个伴生对象,就可以像Java调用静态方法一样来调用其成员变量。

如果一个类定义了伴生对象,就可以用伴生对象来定义扩展函数和属性。代码如下。

class MyClass {
    companion object { }    
}
fun MyClass.Companion.foo() {
    println("伴生对象的扩展函数")
}
val MyClass.Companion.no: Int
    get() = 10

与普通函数和成员一样,伴生对象通过【类名.】的形式来调用,伴生对象声明的扩展函数可以通过类名限定符的方式来调用。代码如下。

println("no:${MyClass.no}")  //调用伴生对象属性,输出no:10
MyClass.foo()                //调用伴生对象函数