Scala单例对象、伴生对象

在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博客 ” ,链接:http://blog.itpub.net/28912557/viewspace-1839506/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28912557/viewspace-1839506/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值