zoukankan      html  css  js  c++  java
  • 快学Scala 第九课 (伴生对象和枚举)

    Scala没有静态方法和静态字段, 你可以用object这个语法结构来达到同样的目的。

    对象的构造器只有在第一次被使用时才调用。

    伴生对象apply方法:

    类和它的伴生对象可以互相访问私有特性,他们必须存在于同一个源文件。

    类中要访问类的伴生对象中成员,需要通过类.成员调用。

    class Account private (val id: Int, initialBalance: Double){
      
    }
    
    object Account {
      def apply(initialBalance: Double)={
        new Account(1, initialBalance)
      }
    }
    
    object ObjectClassDemo {
      def main(args: Array[String]): Unit = {
    
        val a = Account(1)
        
    
      }
    }
    

    对象扩展类或特质:

    object DoNothingAction extends UndoableAction("Do nothing"){
       override def undo(){
         
       }
       override def redo(){
         
       }
    }
    
    object ObjectClassDemo {
      def main(args: Array[String]): Unit = {
        val actions = Map ("open" -> ObjectClassDemo)
      }
    }
    

    应用程序对象:

    object Hello extends App{
      println(args)
      
    }
    

    枚举:

    继承Enumeration, 它是一个抽象类

    object EnumColor extends Enumeration {
    
      type V = Value
      val Red = Value(1, "red")
      val Yellow = Value(2, "yellow")
      val Blue = Value(3, "blue")
    
      def main(args: Array[String]): Unit = {
        println(EnumColor.Red)
        println(EnumColor(2))
        println(EnumColor.withName("red"))
        import EnumColor.Value
        println(Red)
    
        for (c <- EnumColor.values) {
          c match {
            case EnumColor.Red    => println("get red")
            case EnumColor.Yellow => println("get yellow")
            case EnumColor.Blue   => println("get blue")
          }
        }
    
      }
    
    }
    

      

  • 相关阅读:
    断开/删除 SVN 链接(.svn)的几种方法
    Android 中 ListView 常用属性合集
    Android 中 GridView 常用属性合集
    LeetCode-387-字符串中的第一个唯一字符
    LeetCode-374-猜数字大小
    LeetCode-290-单词规律
    LeetCode-278-第一个错误的版本
    LeetCode-383-赎金信
    LeetCode-367-有效的完全平方数
    LeetCode-350-两个数组的交集 II
  • 原文地址:https://www.cnblogs.com/AK47Sonic/p/7291808.html
Copyright © 2011-2022 走看看