--> 跳到主要內容

Kotlin data class 介紹


data class 是 Kotlin 中專門為封裝資料所設計,在需要保存資料的場合就很適合使用,其類別的宣告也可以讓人快速地辨識出這是一個單純的資料類別。

類別的宣告如下:
data class Person(val name: String, val phone: String)
以上的 Person data class 有兩個屬性,分別是 name 和 phone,型別皆為 String。 
其中 data class 還提供一些常用的 functions 來方便我們使用 :
  • toString()
    回傳該 data class 的屬性鍵值對名稱
    範例:
    fun main() {
        val person = Person("John", "12345678")
        val personInfo = person.toString()
        println(personInfo)
    }
    輸出:
    Person(name=John, phone=12345678)
    
  • copy()
    複製並回傳該 data class,且可覆寫指定的屬性值
    範例:
    fun main() {
        val john = Person("John", "12345678")
        val aren = john.copy(name = "Aren")
    
        val personInfo = aren.toString()
        println(personInfo)
    }
    輸出:
    Person(name=Aren, phone=12345678)
  • equals / hashCode
    針對該 data class 的屬性值做 equals 的比對和 hashCode 的產生
    範例:
    fun main() {
        val person = Person("John", "12345678")
        val copyPerson = person.copy()
    
        if (person == copyPerson) {
            println("true")
        }
    }
    輸出:
    true

留言

這個網誌中的熱門文章

OCAJP 7 (1Z0-803) 考試心得

我於12/28考過 OCAJP 7 ,  全名為: O racle C ertified A ssociate J ava P rogrammer 7 Oracle把 Java SE 7 之後的認證考試拆成兩階段: OCAJP 和 OCPJP ,要考過 OCA 才能考 OCP Oracle的證照考試費用很死,150美金約台幣5100元,最好有十足把握再去考 考試詳細說明可上Oracle官網查詢 個人準備用的書籍有兩本,其一是 Java SE7/8 OCAJP 專業認證指南  (曾瑞君 著) 內容包含 OCAJP 7  和 OCAJP 8  的考試範圍講解和每章的一些考古題 講解部分還算詳細,對於複習滿有幫助的 此外這本是考試向,不適合作為新手學習Java的入門書籍 第二本: 猛虎出閘雙劍合璧版  (段維瀚 著) 內容含OCA 7 / OCP 7 的考試範圍,我主要只看後面的考古題,題目都有詳解 本書也是考試向,前面的Java語法解說對新手來說可能會比較深一點 這次考試考古題大概只佔3~4成左右,沒看過的題目要花一點時間看有無陷阱 OCA 很喜歡在一堆程式中放一個會 compile error 的語法,對Java語法要很熟悉才能快速篩出 考試過程遇到不確定或不會的可以先MARK,都作答完可以REVIEW MARK的題目 考試時間150分鐘,個人全部答完剩約45分鐘,有些題目看的比較久,時間還算充裕 這邊列一下比較重要的語法觀念: 1. Java的傳遞參數是 pass by value 2. 物件的實體變數、類別變數和區域變數的特性 3. 類別跟介面的語法實作 4. 每個存取修飾子的存取範圍 5. 例外的繼承關係和處理 然後以下是需熟悉的API方法: 官方文件:  https://docs.oracle.com/javase/8/docs/api/index.html String : substring() 、 concat() 、 replace() 、 toUpperCase()  方法 要注意 String 為 immutable ,如 : String str = "Hello"; str.concat("World&

OCPJP 7(1Z0-804) 考試心得

今天於巨匠電腦考場應試,順利取得了 OCPJP 7 證照 考題的部分個人認為比 OCA 7 還好選答案 準備書籍為: Java SE 7/8 OCPJP 進階認證指南  (曾瑞君 著)     極度推薦此書                          猛虎出閘   (段維瀚 著) 其中 正規表示式 的規則大概看過就好,不用死背,只會出2題左右 本人是直接略過這段,這種東西真的需要用再查就好 然後考古覆蓋率大概六成,滿高的 來說一下 OCP 7 跟 OCA 7 認證考試的不同有哪些 OCP 7 著重在常用的設計模式與基本API,像是執行緒、集合、I/O 、JDBC 和 區域化 Singleton Design Pattern (獨體設計模式) Factory Method DAO  而 OCA 7 考基本語法較多 考取 Java SE 7 證照的目的為熟悉 Java 和 接下來要考的 OCEJWCD 鋪路囉