Kotlin 學習 資料類

2021-08-20 11:00:39 字數 1153 閱讀 7346

在 kotlin 中,有乙個 data 關鍵字,來標記類,這種類一般只用來儲存資料,但是資料類必須滿足類以下條件:

1. 主建構函式至少有乙個引數

2. 主建構函式的引數必須使用 var 或者 val 標記

3. 資料類不能使抽象、開放、密封或者內部的

4. (1.1以前)資料類只能實現介面

data class demo1(val name:string,val age:int)

class demo2(val name:string,val age:int)

fun main(args: array)

結果:

可以看到,data 類和非 data 類的一點不一樣,其實,對於 data 類,編譯器會自動從主建構函式的所有屬性中匯入以下成員:

1. equals() / hashcode() 對

2. tostring() 格式 "demo1(name=宋琪飛,age=20)"

3. copy 函式

copy 函式是為了我們複製乙個物件僅僅只改變它的一些屬性,其他部分不變時使用的,如下:

data class demo(val name:string,val age:int)

fun main(args: array)

結果:

注意:如果你的 data 類對於上述函式有具體的實現,或者其父類對這些函式有 final 的實現,那麼 data 類就會直接使用現有函式,而不會自動生成。data 類當然也可以在類體中宣告屬性,只是編譯器在自動生成函式時不會使用類中宣告的元素。

data class demo(val name:string,val age:int)

fun main(args: array)

結果:

Kotlin學習之資料類

kotlin學習 經常要建立一些只儲存資料的類。在這些類中,一些標準函式往往是從資料機械推導而來的。在kotlin中,這叫做資料類並標記為data。宣告乙個資料類的語法格式如下 data class 類名 繼承類和實現介面 主建構函式的引數列表必須使用val var宣告為類屬性,而且要求至少有乙個,...

Kotlin學習 Kotlin列舉類

列舉類最基本的用法是實現乙個型別安全的列舉。列舉常量用逗號分隔,每個列舉常量都是乙個物件 enum class color每乙個列舉都是列舉類的例項,它們可以被初始化 enum class color val rgb int 預設名稱為列舉字元名,值從0開始。若需要指定值,則可以使用其建構函式 en...

Kotlin學習筆記(三) Kotlin密封類

前言 密封類,可以理解為列舉,規定了有限個型別,不可以存在其他型別,但列舉每個列舉常量只存在乙個示例,但是密封類的子類可以有多個示例,所以可以將密封類看做是列舉的拓展,基於列舉,高於列舉,青出於藍而勝於藍。正文密封類和普通類的區別,在於密封類使用了sealed修飾符,雖然密封類也可以有子類,但是所有...