- 前面已经提到过,伴生对象就是与类名相同的对象,伴生对象可以访问类中的私有量,类也可以访问伴生对象中的私有方法,类似于Java类中的静态方法。伴生对象必须和其对应的类定义在相同的源文件。
代码示例:
//定义一个类
class MyClass(number: Int, text: String) {
private val classSecret = 42
def x = MyClass.objectSecret + "?" // MyClass.objectSecret->在类中可以访问伴生对象的方法,在类的外部则无法访问
}
//定义一个伴生对象
object MyClass { // 和类名称相同
private val objectSecret = "42"
def y(arg: MyClass) = arg.classSecret -1 // arg.classSecret -> 在伴生对象中可以访问类的常量
}
MyClass.objectSecret // 无法访问
MyClass.classSecret // 无法访问
new MyClass(-1, "random").objectSecret // 无法访问
new MyClass(-1, "random").classSecret // 无法访问
作者:IIGEOywq
链接:https://www.jianshu.com/p/ace2bb24dc11
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。