Scala伴生对象

 1 package big.data.analyse.scala.classes
 2 
 3 /**
 4   * Created by zhen on 2018/9/11.
 5   * 伴生对象
 6   */
 7 //定义私有的构造方法
 8 class Marker private(val color : String){
 9   override def toString() : String = "marker color " + color
10 }
11 object Marker{
12   private val markers = Map(
13     "red" -> new Marker("red"),
14     "blue" -> new Marker("blue"),
15     "green" -> new Marker("green")
16   )
17   def apply(color : String) = if(markers.contains(color)) markers(color) else null
18 }
19 object Main{
20   def main (args: Array[String]) {
21     //Error:(33, 18) constructor Marker in class Marker cannot be accessed in object Main
22     //val marker = new Marker("haha")
23     println(Marker("blue"))
24     println(Marker("green"))
25     println(Marker("red"))
26     println(Marker("white"))
27   }
28 }

 

posted @ 2018-09-11 15:40  云山之巅  阅读(233)  评论(0编辑  收藏  举报