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 }
