【Kotlin 入門指南】系列文章目錄:https://bit.ly/3t8awwL
Kotlin 線上課程教學影片:https://bit.ly/3qJ5a5Q
在 Kotlin 程式語言中,資料類別 (Data classes) ,它讓你能夠輕鬆地建立和定義只用來儲存資料的類別,讓程式碼更簡潔、更容易閱讀。資料類別的主要目的是暫時保存資料,而不是處理邏輯行為。
要建立一個資料類別,只需使用 data
關鍵字開頭,後面接類別名稱和屬性。在這個範例中,我們建立了一個名為 帳戶
的資料類別,該類別包含 帳號
和 戶名
兩個屬性,且皆是是字串資料類型。
data class Account (val id: String,val name: String)
定義爲資料類別後,Kotlin 系統背後將自動生成,以下方法:
fun main() {
val account_1 = Account("123456789", "HKT")
val account_2 = Account("666666", "kitty")
val account_temp = account_1
println(account_1.equals(account_2))
println(account_1.hashCode())
println(account_temp.hashCode())
println(account_2.hashCode())
println(account_1.id)
println(account_1.name)
}
輸出結果
false
-2054091236
-2054091236
-1914842213
123456789
HKT
在這個範例 main()
函數中,我們創建了兩個帳戶對象 account_1
和 account_2
,並將 account_1
的參考指定給 account_temp
。接著使用 equals()
方法比較帳戶對象是否相同,並輸出了各個帳戶對象的雜湊碼、id 和 name。
data class
提供了自動生成的方法,如 toString()
、equals()
、hashCode()
和 copy()
,這些對於資料的處理很方便。而一般的 class
需要手動實現這些方法。class
適合於有複雜邏輯和特殊行為的情況,而 data class
更適合作為資料的容器,用來儲存和表示資料而不添加額外邏輯。data class
至少需要一個主要的構造函數class
中,屬性可以是 val
或 var
,但並不強制。你可以自由地在 class
中聲明屬性而不必給予 val
或 var
關鍵字。但是 data class
,在主要構造函數中聲明的參數屬性,必須使用 val
或 var
來明確指定其可變性,這是為了確保資料類別中的屬性是不可變 (val
) 或可變 (var
) 的。data class
不可以有 open 、 abstract 、 sealed 和 inner 等修飾。