小记--------scala---面向对象编程值对象Object

object
    在scala中没有静态方法和静态字段,所以在scala中可以用object来实现这些功能,直接用对象名调用的方法都是采用这种实现方式。
    第一次调用object的方法时, 就会执行object的constructor,也就是object内部不在method中的代码,如果一个对象从未被使用,那么他的构造器也不会被执行,对象本质上用于类的所有特性。object还可以扩展类以及一个或者多个特质
    abstract class ClassName(val parameter) {}
    object Test extends ClassName(val parameter){}
 
但是object不能定义接收参数的constructor
     注意:object的constructor只会在其第一次被调用时执行一次, 以后再次调用就不会再次执行constructor了,
    object通常用于作为单例模式的实现,或者放class的静态成员。
 
伴生对象
    如果有一个class,还有一个与class同名的object,那么就称这个object是class的伴生对象, class是object的伴生类
    伴生类和伴生对象必须存放在一个.scala文件之中
    伴生类和伴生对象,最大的特点就在于,相互可以访问private field(私有属性) 
 
 
object继承抽象类
 
 
成功覆盖抽象类的抽象方法
 
apply方法
    object中非常重要的一个特殊方法,就是apply方法。
    通常在伴生对象中实现apply方法,并在其中实现构造伴生类的对象的功能。
    而创建伴生类对象时, 通常不会使用new Class的方法,而是使用Class()的方式,隐式地调用伴生对象的apply方法,这样会让对象创建更加简洁
 
 
main 方法
    在scala中,如果要运行一个应用程序,那么必须有一个main方法,作为入口
scala中的main方法必须定义在object中
object HelloWorld{
    def main (args:Array[String]){
        println("helloWord")
    }
}

先用scalac 编译,  在用scala执行

scalac HelloWorld.scala
scala HelloWorld
 
object实现枚举功能
    需要用object集成Enumeration类,并且调用Value方法来初始化枚举值
其中Value(0,"spring")的含义。
分别为Value(id , name)  
  
 
 
可以使用增强for循环遍历枚举的值
posted @ 2020-04-11 22:19  二黑诶  阅读(262)  评论(0编辑  收藏  举报