黑猴子的家:Scala 伴生对象

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

猜你喜欢

转载自blog.csdn.net/weixin_34268610/article/details/91182478