Scala學習筆記3 類和物件

2021-07-16 03:56:53 字數 603 閱讀 4326

類(class)和構造器:

類的定義形式如下:

class myclass(a: int, b: int) .show()

你可以通過以上方式引數化特質,但是你會發現這和「new 類名(引數列表)」引數化乙個類例項還是有區別的,因為你看到了對於test變數的兩次println(第一次在特質主體中,第二次是由於呼叫了方法show),輸出了兩個不同的值(第一次是0,第二次是1)。這主要是由於超類會在子類之前進行初始化,而超類抽象成員在子類中的具體實現的初始化是在子類中進行的。為了解決這個問題,你可以使用預初始化欄位和懶值。

預初始化字段:

預初始化字段,可以讓你在初始化超類之前初始化子類的字段。預初始化字段用於物件或有名稱的子類時,形式如下:

class b extends with a

預初始化字段用於匿名類時,形式如下:

new with a

需要注意的是:由於預初始化的字段在超類構造器呼叫之前被初始化,因此它們的初始化器不能引用正在被構造的物件。

懶值:加上lazy修飾符的val變數稱為懶值,懶值右側的表示式將直到該懶值第一次被使用的時候才計算。如果懶值的初始化不會產生***,那麼懶值定義的順序就不用多加考慮,因為初始化是按需的。

scala 學習筆記 物件

new array 100 呼叫構造器this 100 生成乙個含有100個null元素的array 3.物件的update方法 val scores new scala.collection mutable hashmap string,int scores bob 100 呼叫scores.up...

scala 類物件學習記錄

接首篇 整理一下scala的類物件 scala的類,屬性 定義使用方式和j a中沒什麼區別,主要要注意一下屬性val 和var的賦值問題 class persion2 scala的方法 定義形式 def functionname 引數列表 return type 其中返回型別可以不寫,就會根據你函式...

scala學習筆記3 對映和元組

對映和元組 1 scala中,對映是對偶的集合,可以看做將鍵對映到值的函式,區別在於函式一般用於計算,而對映只做查詢。val scores map alice 10,bob 3,cindy 8 不可變的對映 val scores new scala.collection.mutable.hashma...