Scala系列学习及应用(Object对象)

今天跟大家分享的是scala的Object修饰的对象,做过java开发的同学都知道使用static修饰的类、方法、字段等,都可以通过class.method等方式调用。而scala中的Object对象就可以达到同样的效果。

使用场景:

        1:作为存放工具函数和常量的地方
        2:高效地共享单个不可变实例
        3:需要用单个实例来协调某个服务

Object对象有如下特点:

        1:对象中的构造方法不能带参数

        2:对象中的方法和属性被调用时,构造方法被执行(仅执行一次),后面再被调用构造方法不会被执行

        3:与类名相同的对象为伴生对象,伴生对象与伴生类需要在同一个源文件中。

        4:伴生对象与伴生类可以相互访问私有的属性或方法

        5:Object(x,x,x)这种格式的Object调用,调用的是伴生对象里的apply方法,通过这种方式来创建类实例,通过这种式可以设计单例模式

        6:Object对象和类相似,可以扩展类和物质,唯一不同就是构造方法不能带参数

/**
  * Created by binary on 2016/11/2.
  */
class Account2 private (val id : Int,init : Double) {

  private var balance = init

  val number = Account2.newUniqueNumber

}

object Account2{

  def apply(init : Double) = {
      new Account2(newUniqueNumber,init)
  }

  private var lastNumber = 0

  private def newUniqueNumber() = {
    lastNumber += 1
    lastNumber
  }

    

 

转载于:https://my.oschina.net/u/1263680/blog/779886

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值