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() //调用伴生对象函数