Scala学习第十天 Scala单例对象、伴生对象实战详解

来源:互联网 发布:数据库经典书籍 知乎 编辑:程序博客网 时间:2024/06/05 10:56

信息来源于 DT大数据梦工厂微信公众账号:DT_Spark
DT大数据梦工厂群号:302306504王家林老师微信号:wangjialinandroid

1、Scala单例对象
Scala单例对象是十分重要的,没有像在Java一样,有静态类、静态成员、静态方法,但是Scala提供了object对象,这个object对象类似于Java的静态类,它的成员、它的方法都默认是静态的。

//如果object的静态成员要被外界访问,则该成员不能被private修饰object University{  private var studentNo = 0  def newStudentNo = {   studentNo += 1   studentNo   } } object objecOps {   def main (args : Array[String]) : Unit = {   println(University.newStudentNo)   println(University.newStudentNo)   } }

与Java另一个不一样的是,如果是静态类的静态变量、静态方法,类加载就会执行,但是Scala只有在第一次使用object的静态变量,静态方法才会生效。object也有一个隐形的无参的构造器。
2、Scala伴生对象
如果有同样一个类与该object名字一样,则称该object为该类的伴生对象,相对应,该类为object的伴生类。如果一个类有它的伴生对象,这个类就可通过object的名字访问到所有成员,但object不在该类的作用范围。

class University{val id = University.newStudentNoprivate var number = 0def aClass (number : Int){this.number += number}}object University {   private var studentNo = 0   def newStudentNo = {   studentNo += 1   studentNo   } }

object对象为静态常量、静态变量区域,可以直接调用,共享全局变量很有意义,伴生对象方便类的构建,可做为当前类的静态方法、成员的集合。
Scala 深入浅出实战经典(1-64讲)完整视频、PPT、代码下载:

百度云盘:http://pan.baidu.com/s/1c0noOt6

腾讯微云:http://url.cn/TnGbdC

360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2
Scala视频及其更新和其他资料(Spark公开课、安卓基础、移动互联网)下载:
百度云盘:http://pan.baidu.com/share/home?uk=4013289088&view=share#category/type=0

0 0
原创粉丝点击