快学Scala 第六课 (类getter和setter)

类getter和setter

如果字段定义是private[this], 字段是私有的,但不生成getter和setter方法。

class Counter {
  private[this] var value = 0
}

如果字段定义是私有的(private),则getter和setter方法也是私有的。

class Counter {
  private var value = 0
}

如果字段定义没有修饰符, 则字段是私有的,getter和setter方法是共有的。

class Counter {
  var value = 0
}

如果字段是val, 则生成final字段,并且只有getter方法。

class Counter {
  val value = 0
}

重写setter和getter方法。

class Counter {
  var value: Int = 0
  def age: Int = { value + 100 }
  def age_=(value: Int) = {
    this.value = value
  }
}

object CTest {
  def main(args: Array[String]): Unit = {
    val c = new Counter()
    c.age =(10)
    println(c.age)
  }
}
原文地址:https://www.cnblogs.com/AK47Sonic/p/7277304.html