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 " + color10 }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 null18 }19 object Main{20 def main (args: Array[String]) {21 //Error:(33, 18) constructor Marker in class Marker cannot be accessed in object Main22 //val marker = new Marker("haha")23 println(Marker("blue"))24 println(Marker("green"))25 println(Marker("red"))26 println(Marker("white"))27 }28 }