Scala的getter、setter方法以及構造方法

scala 爲每一個私有變量提供了getter、setter方法,不用顯性的定義:

下面是幾種方式:

package scalaLearn

class Counter {
  private var mycount = 10  // 默認提供了 getter和 setter方法
  private var myname = "Scala"
  // 實際上他自動實現了getter setter方法
  // 自定義
  def count = mycount
  def count_=(newCount:Int)={
    mycount = newCount
  }

  def this(mycount:Int){
    this()  // 必須要顯式調用構造方法
    this.mycount = mycount
  }

  def this(myname:String, mycount:Int){
    this(mycount)
    this.myname = myname
  }

}

object Counter{
  def main(args: Array[String]): Unit = {
    val counter = new Counter()
    counter.mycount = 290  // 默認提供了getter setter方法
    println("使用默認的getter、setter方法:"+counter.mycount)
    counter.count = 250
    println("使用自己編寫的getter和setter方法:"+ counter.count)

    val counter2 = new Counter(150)
    println(counter2.mycount)

    val counter3 = new Counter("亞瑟", 520)
    println("名字:"+counter3.myname+" 計數:"+counter3.mycount)
  }
}

還有一種

@BeanProperty
var name = "scala"     

這種方式不能加 private 修飾變量。

上面用到了伴生對象,所以可以互相訪問私有變量。

參考:
scala的getter、setter方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章