黑猴子的家 Scala 簡單類和無參方法

2021-09-24 03:32:56 字數 854 閱讀 9547

1、dog類

類的定義可以通過class關鍵字實現,如下

class dog 

}

執行方式一

使用這個類

val dog = new dog

println(dog.leg)

dog.leg_=(10)

println(dog.leg)}

3、主類

執行方式二

object loop_tmain  

}

eiffel語言發明者,提出統一訪問原則,內容如下,某個模組提供的所有服務,都應該能通過統一的表達法訪問到,至於它們是通過儲存還是通過計算來實現的,從訪問方式上應無從獲得。

在scala中,dog.leg 的呼叫者並不知道leg是通過字段還是通過方法來實現的,當然,在jvm中,該服務總是通過方法來實現的,要麼是編譯器合成,要麼由程式設計師提供

4、loop_one

建立名為loop_one 的scala 類檔案

// class 名 和 檔名,可以不一致

class zom

class cat

//主程式

println("haha")

}

scala 對每個字段生成getter和 setter方法,這聽上去有一些恐怖,不過我們可以控制這個過程

(1)如果欄位是私有的,則getter和setter方法也是私有的

(2)如果欄位是val,則只有getter 方法被生成

(3)如果你不需要任何getter或者setter,我們可以將字段宣告為private[this]

黑猴子的家 Scala 密封類

如果想讓case類的所有子類都必須在申明的該類的相同的檔案中定義,可以將樣例類的通用超類宣告為sealed,叫做密封類,密封就是外部使用者不能在其他檔案中定義子類。不能被繼承只能自己用 sealed abstract class trafficlightcolor case object red e...

黑猴子的家 Scala 超類的構造

類有乙個主構器和任意數量的輔助構造器,而每個輔助構造器都必須以對先前定義的輔助構造器或主構造器的呼叫開始。子類的輔助構造器最終都會呼叫主構造器,只有主構造器可以呼叫超類的構造器。輔助構造器永遠都不可能直接呼叫超類的構造器。在scala的構造器中,你不能呼叫super params class per...

黑猴子的家 Scala 擴充套件類的特質

總結 1 特質可以繼承自類,以用來拓展該類的一些功能 2 所有混入該特質的類,會自動成為那個特質所繼承的超類的子類 3 如果混入該特質的類,已經繼承了另乙個類,不就矛盾了?注意,只要繼承的那個類是特質超類的子類即可。1 特質可以繼承自類,以用來拓展該類的一些功能 特質可以繼承自類,以用來拓展該類的一...