zoukankan      html  css  js  c++  java
  • scala对象

    1.单例对象

    /*
    scala中没有静态方法 静态字段 使用object达到同样的目的
    
    首次使用时构造器会被执行
    未被使用时不会被执行
     */
    object MyCounter {
    
      private var lastNumber = 0
    
      def newUniqueNumber() = {
        lastNumber += 1
        lastNumber
      }
    
    }

    2.伴生对象

    /*
    伴生对象 伴生类
    1.名称相同
    2.类和他的伴生对象可以相互访问私有特性
    3.必须在同一个源文件中
     */
    
    class MyCounter {
      val id = MyCounter.newUniqueNumber()
      private var balance = 0.0
    
    }
    
    object MyCounter {
    
      private var lastNumber = 0
    
      def newUniqueNumber() = {
        lastNumber += 1
        lastNumber
      }
    
    }

    3.扩展类或特质的对象

    //一个object可以扩展类以及一个或者多个特质
    //其结果是扩展了指定类以及特质的类的对象
    //同时拥有在对象定义中给出的所有特性
    abstract  class UndoableAction(val description:String){
      def undo():Unit
      def redo():Unit
    }
    
    object DoNothingAction extends UndoableAction("Do nothing"){
      override def undo(): Unit = ???
    
      override def redo(): Unit = ???
    }

    4.apply方法

    class Person private(id: Int, age: Int) {
    
    }
    
    object Person {
      def apply(id: Int, age: Int) = {
        new Person(id, age)
      }
    
      def main(args: Array[String]): Unit = {
        val p1 = Person(1, 2)
      }
    }

    5.应用程序对象

    1.main方法
    2.继承App
    class Person private(id: Int, age: Int) {
    
    }
    
    object Person extends App {
      val p1 = Person(1, 2)
    }

    6.枚举

    /*
    scala没有枚举类型
    助手类:Enumeration
    定义扩展Enumeration类的对象,并以Value方法调用初始化枚举中的所有可选值
     */
    
    object TrafficLightColor extends Enumeration {
      val Red, Yellow, Green = Value
    
      def main(args: Array[String]): Unit = {
        val a: TrafficLightColor.Value = TrafficLightColor.Green //引用枚举值  类型:TrafficLightColor.Value
      }
    }
  • 相关阅读:
    Java集合
    java多线程
    IO学习笔记
    在阿里云服务器上部署项目失败的原因
    购买阿里云服务器学生机
    使用gitee创建个人的图床
    idea中springboot热部署(无需重启项目)
    Springboot实现验证码登录
    getAddress和getHostAddress的区别
    泛型学习第一天:List与IList的区别 (三)
  • 原文地址:https://www.cnblogs.com/yin-fei/p/10830701.html
Copyright © 2011-2022 走看看