美文网首页大数据
5.scala中的对象

5.scala中的对象

作者: bigdataer | 来源:发表于2017-03-17 18:26 被阅读20次

版权申明:转载请注明出处。
文章来源: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

相关文章

  • 5.scala中的对象

    版权申明:转载请注明出处。文章来源:http://bigdataer.net/?p=285 排版乱?请移步原文获得...

  • 5.Scala 类和对象 (二)

    前面提到Scala比Java更加面向对象,这是因为Scala不允许类保护静态元素(静态变量或静态方法)。在Scal...

  • R中的对象(中)

    我们对R中的数据类型对象有了一定的了解,接下来就是对数据对象的简单操作。在excel里我们可以通过鼠标来实现,在R...

  • JavaScript中的this对象

    首先要搞懂一个问题,函数中的this到底是怎么来的? 普通函数参数列表中有一个默认参数self,这个self的值就...

  • JavaScript中的对象

    一 、什么是对象? 对象就是属性和方法的集合。在JS中,属性就是变量,方法就是函数,属性称作成员属性,方法称作成员...

  • JavaScript中的this对象

    首先,this对象是在运行时基于函数的执行环境绑定的,是发生在调用的时候。这个“超级”延迟绑定(very late...

  • JavaScript中的this对象

    在JavaScript中,this对象是在运行时基于函数的执行环境决定的。this总是指的是调用函数的那个对象 1...

  • JavaScript中的对象

    JavaScript中的对象 面向对象(Object-Oriented,...

  • js中的this对象

    js中的this总会指向一个对象,具体是哪个对象就由运行时函数的执行环境而决定了。在实际应用中,this的常用指向...

  • JavaScript中的对象

    JavaScript中创建对象的方法之一: 访问对象属性的方法有两种,一种是.还有一种是[] 如果你想访问的属性中...

网友评论

    本文标题:5.scala中的对象

    本文链接:https://www.haomeiwen.com/subject/tifynttx.html