5.scala中的对象

版权申明:转载请注明出处。
文章来源:http://bigdataer.net/?p=285

排版乱?请移步原文获得更好的阅读体验

1.单例对象

scala中没有静态类或者静态方法,都是通过object实现的,它表示某个类的单例对象。如object People是class People的单例对象。

2.伴生对象

java中有些类可能会既有静态方法又有实例方法,在scala中静态方法存在于对象中,也就意味中scala中需要有这么一个东西,它既是类,也含有对象。其中的对象就是类的伴生对象,同样的,类就是对象的伴生类。需要注意的是类和它的伴生对象可以相互访问私有属性,它们也必须存在于同一个源文件中。如:

class People{
 private val name:String = ""
   def run()={
   ……
   }
}

object Peole{
 private var age:Int
   def age(){
   this.age += 1
   }
}

3.apply方法

调用apply方法其实是调用的类对应的伴生对象的apply方法,apply方法类似于使用构造器,但是在嵌套结构中使用apply方法能省去使用new。Array("marry","alice")其实是调用了Array类对应的伴生对象的apply方法。看一个实例:

class Peopel(salary:Int){
   ……
}

object People{
 def apply(salary:Int):People= {
       new People(salary)
   }
}

val p = People(100) //此处调用了伴生对象的apply方法

4.枚举

scala中没有枚举类型,实现方式是通过Enumeration产出枚举。比如:

object ColorEnum extends Enumeration {
 val Red,Green,Yellow = Value //调用了Value方法生成三个枚举值
   /*相当于
   val Red = Value
   val Green = Value
   val Yellow = Value
   */
}

更多文章请关注微信公众号:bigdataer

推荐阅读更多精彩内容

  • 读《快学Scala 》一书的摘要 Scala 运行于JVM之上,拥有海量类库和工具,兼顾函数式编程和面向对象。 在...
    abel_cao阅读 831评论 0 8
  • Scala学习笔记: 1.1 scala的基础语法 声明与定义(赋值):声明变量时可以指定类型,不指定也可以自动识...
    哎哟喂喽阅读 194评论 0 2
  • scala文档 包含内容 1基础 2控制结构和函数 3数组相关操作 4映射和元组 5类 6对象 7.包和引入(x)...
    zlcook阅读 466评论 0 3
  • 好久没有这样的感觉了,以为长大了,势力了,斤斤计较了,除了亲人,无法真心喜欢一个人。他找我聊天,我一边聊一边会想他...
    沙漠里的仙人掌阅读 25评论 0 0
  • 夜幕低垂,邂逅了星河, 寒风摇曳,舞动着夜影, 门口最后坐着的那个人也进屋关上了门。 时光嘀嗒嘀嗒, 沙发上坐着的...
    蒋小志jxz阅读 61评论 6 10