page contents

伴生对象是什么?

轩辕小不懂 发布于 2021-09-06 14:20
阅读 683
收藏 0
分类:资源下载
1864
Nen
Nen
- 程序员

前面已经提到过,伴生对象就是与类名相同的对象,伴生对象可以访问类中的私有量,类也可以访问伴生对象中的私有方法,类似于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 // 无法访问

请先 登录 后评论