1、Cat
Java中的类可以既有实例方法又有静态方法,Scala中可以通过伴生对象进行实现。如下
class Cat {
private var name: String = _
val hair = Cat.growhair
def changName(name:String): Unit ={
this.name = name
}
override def toString: String = {
"name:" + name + "hair:" + hair
}
}
object Cat {
private var hair: Int = 0
def apply(): Cat = new Cat()
private def growhair = {
hair += 1
hair
}
}
2、CatMain
object CatMain {
def main(args: Array[String]): Unit = {
val cat1 = new Cat
val cat2 = Cat()
cat1.changName("黑猫")
cat2.changName("白猫")
println(cat1)
println(cat2)
}
}
尖叫提示:类和它的伴生对象可以相互访问私有特性,他们必须存在同一个源文件中。必须同名
name:黑猫hair:1
name:白猫hair:2
证明这个hair是公共的
转载于:https://www.jianshu.com/p/96993a810986