在scala下建立一個包名爲org.scala.clazz ,建立scala類名爲OOPInScala.scala ,並增長object OOPInScalaweb
(圖片上包明有誤,應該是org.scala.clazz)函數
建立一個User類 並增長name和age字段this
調用User類並執行scala
private[this]的使用orm
咱們能夠看到 gender屬性是 inaccessible的,這樣使用private[this]定義後的內容能夠沒法被外部使用了,這樣啓動很好的保護的做用了圖片
類的構造器:it
主構造器使用:編譯
調用:變量
從上面運行的結果咱們能夠發現scala主構造器特色:object
一、主構造器直接跟在類名後面,主構造器中的參數會被編譯成類的字段
二、主構造器執行的時候會執行類中的全部不包含在方法體中的語句
若是咱們把User主構造器中的 name前面的val去掉後,在運行下
咱們能夠發現報錯信息爲name字段不是一個User類的成員變量
所以咱們能發現scala主構造器的第三個特色 三、主構造器函數的參數中沒有用var 或者val去聲明變量,那此時的變量是private[this]級別的,只能被類內部使用
附屬構造器的使用:
一、附屬構造器是使用this來聲明的
二、附屬構造器必須調用主構造器或者其餘附屬構造器
調用結果爲: