Scala類的屬性以及物件私有欄位

541732025發表於2015-11-08

點選(此處)摺疊或開啟

  1. class Person {
  2.   private var age = 0
  3.   def increment(){age += 1}
  4.   def current = age
  5. }

  6. class Student{
  7.   var age = 0
  8. }

  9. object HelloOOP {
  10.   def main(args: Array[String]): Unit = {
  11.     val person = new Person()
  12.     person.increment()
  13.     println(person.current)
  14.   }
在Scala裡面,可以允許有多個class,而且預設是public級別的。

var age = 0

在scala裡面,定義一個屬性必須要手動賦值,不像在java裡面,會預設賦值0
這裡,scala預設屬性是private的,而且也會預設生成共有的setter、getter方法。但是如果屬性被顯示宣告為private,那麼預設會生成private的getter、setter

val age = 0
對於val,scala會預設加上final,並且只生成getter方法,沒有setter方法

private[this] var age = 0
scala特有,物件私有屬性,這種屬性只有本物件可以訪問,該類的其它物件不能訪問。透過這種機制實現例項成員的隔離。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28912557/viewspace-1825676/,如需轉載,請註明出處,否則將追究法律責任。

相關文章