ITPub博客

首页 > 应用开发 > Java > Scala单例对象、伴生对象

Scala单例对象、伴生对象

原创 Java 作者:541732025 时间:2015-11-15 18:36:10 0 删除 编辑
在Scala中,没有静态成员、静态方法这一说,但是object可以做到类似效果:

点击(此处)折叠或打开

  1. object University{
  2.   private var studentNo = 0
  3.   def newStudenNo = {
  4.     studentNo += 1
  5.     studentNo
  6.   }
  7. }

点击(此处)折叠或打开

  1. object ObjecOps {
  2.   def main(args: Array[String]): Unit = {
  3.     println(University.newStudenNo) //第一次调用时,初始化成员变量
  4.     println(University.newStudenNo)
  5.   }
  6. }
结果:1、2

点击(此处)折叠或打开

  1. class University{
  2.   val id = University.newStudenNo //可以访问伴生对象的任何成员,即使是private
  3.   private var number =0
  4.   def aClass(number:Int){this.number += number}
  5. }

如果,同时存在一个class University,那么这个类叫做伴生类,相应地,这个对象叫做伴生对象。
这个机制很有用,伴生对象可以做一些静态化的初始化工作,如在spark中,可以经常看到这样的用法。
如果是伴生对象,这个类可以访问这个对象的任何成员(即使是private)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28912557/viewspace-1839506/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Scala的内部类
下一篇: Scala的apply
请登录后发表评论 登录
全部评论

注册时间:2013-05-23

  • 博文量
    127
  • 访问量
    515720