美文网首页
scala08.对象

scala08.对象

作者: Java架构师之路 | 来源:发表于2020-01-05 13:22 被阅读0次

    8.1单例对象

    Scala中没有静态方法和静态字段,你可以用object 这个语法结构来达到同样的目的。
    对象的构造器在该对象第一次使用时调用。如果对象没有使用过,他的构造器也不会被执行。
    对象基本具有类的所有特性,就是一点,你不能设置构造器的参数。

    8.2伴生对象

    Java中会有类既有实例方法又有静态方法的类。Scala中可以通过伴生对象进行实现。
    类和它的伴生对象可以相互访问私有特性,他们必须存在同一个源文件中。必须同名

    8.3Apply方法

    我们通常会定义和使用对象的apply方法,当遇到如下形式时:
    Object(参数1、参数2、参数.…)会调用apply方法。
    Apply方法一般都声明在伴生对象中。

    8.4应用程序对象

    每一个Scala应用程序都需要从一个对象的main方法开始执行,这个方法的类型为Array[String]=>Unit。

    或者扩展一个App特质:

    8.5枚举

    Scala中没有枚举类型,定义一个扩展Enumeration类的对象,并以value调用初始化枚举中的所有可能值。

    import org.scalatest.FunSuite
    
    class Chapter07Test extends FunSuite {
    
      test("core01") {
        //Scala中没有静态方法和静态字段,你可以用object
    
      }
      test("core02") {
        //伴生对象
      }
      test("core03") {
        //Apply方法
      }
      test("core04") {
        //应用程序对象
        //继承app特质
      }
      test("core05") {
        //Scala中没有枚举类型,定义一个扩展Enumeration类的对象,并以value调用初始化枚举中的所有可能值。
      }
    
    }
    
    //Java中会有类既有实例方法又有静态方法的类。Scala中可以通过伴生对象进行实现。
    //类和它的伴生对象可以相互访问私有特性,他们必须存在同一个源文件中。必须同名
    object Chapter07Test {
      //单例对象
      private var lastName = "jim"
      val abc = "green"
    
      //  Apply方法一般都声明在伴生对象中
      def apply() = new Chapter07Test {}
    }
    
    //扩展一个App特质
    object Hello extends App {
      println("HelloWorld")
    }
    //枚举类
    object TrafficLightColor extends Enumeration {
      val Red, Yellow, Green = Value
    }
    

    相关文章

      网友评论

          本文标题:scala08.对象

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