【Kotlin 入門指南】擴展 (Extensions)

更新於 2024/12/07閱讀時間約 2 分鐘
【Kotlin 入門指南】系列文章目錄:https://bit.ly/3t8awwL
Kotlin 線上課程教學影片:https://bit.ly/3qJ5a5Q

擴展

當今天某個類別,比如說 String,在不能直接修改其程式碼或無法繼承使用的情況下,你可以運用 Kotlin 的擴展功能,來擴展該類別的功能。它允許你擴展現有的類別,而不需修改其原始碼。這使得你能夠向任何類別添加新的功能,讓程式碼更具靈活性。

擴展範例

首先定義一個 Account 類別:

class Account {
var id: String = ""
}

然後,不需更改 Account 類別本身,你可以透過擴充功能,增加額外的功能:

fun Account.Print() {
println("帳號: " + id)
}

擴充功能的使用方法如下:

fun main() {
//實體化
val account = Account()
account.id = "123456789"
account.Print()
}

執行後的輸出結果為:

帳號: 123456789

擴展的限制

儘管擴充功能非常方便,但也有一些限制需要注意。例如,擴充無法訪問類別的私有或受保護屬性和方法,只能訪問公開可見的成員。此外,擴充不能實際修改原始類別的結構,它們僅為該類別添加新功能,而不會改變其內部結構。

avatar-img
11會員
243內容數
哈囉!歡迎光臨我的沙龍!我是 KT,一位對應用程式開發充滿熱情的開發者。在這個專屬空間,我將與您分享我在應用開發領域的深入學習心得和豐富的實戰經驗。如果您對應用程式開發技術同樣充滿好奇,渴望不斷探索新知,歡迎成為我們的會員,一起在應用程式開發的旅途上,探索更深層次的技術世界,享受學習的樂趣。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
HKT實驗室 的其他內容
可以將「泛型」比喻成寶可夢中的百變怪。它允許你撰寫可以適用於多種資料類型的程式碼,而不需要重複寫多個相似的函數或類別。當你需要處理不同類型的參數,不論是類別或方法,以及各種資料型態時,泛型就能派上用場。
在 Kotlin 程式語言中,類別(Class) 扮演著關鍵角色,它能讓你建立真實存在的物件或實體。類別就像是物件的設計藍圖,描述了它們的特性和行為。而實體化(Instantiation) 則是利用這個藍圖來創造具體的實例,讓物件具備類別所定義的特性和行為。
在 Kotlin 程式語言中 Object 實體化單例模式,它確保一個類別只有一個唯一的實例。在 Kotlin 程式語言中,你可以使用 object 這個關鍵字來實現單例模式。
Object 宣告式,它允許你在宣告同時創建該類別的單一實例。這個實例是在第一次被訪問時被創建,之後該實例的引用將被重複使用。這樣的設計模式常被稱為「單例模式」,能確保在程式運行中只存在一個特定類別的單一實例。
Object 表達式是一種在需要時立即建立匿名內部類別的方法。它允許我們直接在程式碼中創建一個無需命名的物件,同時可以實作介面、擴展其他類別,或是建立特定型別的物件。沒有宣告 Object 名字 ,匿名並繼承特定類別或介面。
Companion Object(伴生物件),它允許在類別內建立一個專屬的物件,這個物件與該類別相關聯,可用來存取該類別的屬性和函數。透過 Companion Object,你能夠實現類似於 Java 中的靜態成員的功能。
可以將「泛型」比喻成寶可夢中的百變怪。它允許你撰寫可以適用於多種資料類型的程式碼,而不需要重複寫多個相似的函數或類別。當你需要處理不同類型的參數,不論是類別或方法,以及各種資料型態時,泛型就能派上用場。
在 Kotlin 程式語言中,類別(Class) 扮演著關鍵角色,它能讓你建立真實存在的物件或實體。類別就像是物件的設計藍圖,描述了它們的特性和行為。而實體化(Instantiation) 則是利用這個藍圖來創造具體的實例,讓物件具備類別所定義的特性和行為。
在 Kotlin 程式語言中 Object 實體化單例模式,它確保一個類別只有一個唯一的實例。在 Kotlin 程式語言中,你可以使用 object 這個關鍵字來實現單例模式。
Object 宣告式,它允許你在宣告同時創建該類別的單一實例。這個實例是在第一次被訪問時被創建,之後該實例的引用將被重複使用。這樣的設計模式常被稱為「單例模式」,能確保在程式運行中只存在一個特定類別的單一實例。
Object 表達式是一種在需要時立即建立匿名內部類別的方法。它允許我們直接在程式碼中創建一個無需命名的物件,同時可以實作介面、擴展其他類別,或是建立特定型別的物件。沒有宣告 Object 名字 ,匿名並繼承特定類別或介面。
Companion Object(伴生物件),它允許在類別內建立一個專屬的物件,這個物件與該類別相關聯,可用來存取該類別的屬性和函數。透過 Companion Object,你能夠實現類似於 Java 中的靜態成員的功能。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
本章節旨在教導讀者如何在 Kotlin 中引入套件。將會涵蓋如何引用第三方套件,如何引用自定義模組,以及如何創建和引用自定義套件。此外,還會列出一些常用的套件,以供讀者參考。
Thumbnail
本文介紹 Kotlin 中的延遲初始化(lateinit)和懶加載(lazy)的使用方法,以及它們之間的差異。這些關鍵字能夠提升程式效能並簡化程式碼撰寫。
Thumbnail
在 Kotlin 程式語言中,屬性訪問 (Property Access ) 提供了一種簡潔的方式來存取 Java 類別中的公開屬性欄位,可以省去 getter 與 setter 呼叫方法。
Thumbnail
在 Kotlin 語言裡,資料型別映射指的是 Java 到 Kotlin 的資料型別轉換。例如,在 Java 裡,整數型別用「int」表示,而在 Kotlin 裡,這對應的型別是「Int」。當你在 Kotlin 存取 Java 類別的整數型別欄位值時,這些值會自動轉換成 Kotlin 對應的型別。
Thumbnail
空值例外是開發中一個常見的風險,特別是在 Kotlin 和 Java 這樣的跨平台開發中更容易出現。藉由合理地運用 Kotlin 的空值安全機制以及對 Java 程式碼的註解,可以有效地降低程式錯誤的風險,提高程式碼的可靠性和穩定性。
Thumbnail
行程 (Process),正如其名,指的是正在執行的程式 (Program),變數在其之中,是獲得命名,能保留自我的少數特殊存在。如果變數屬於全域變數 (Global Value),那麼其生命週期就會和行程一致,其他較短生命週期的都是局部變數 (Local Value)。 從一而終,在生命中止前不變
Thumbnail
接續上次的士兵類別,提到名字用了 String 變數。 String 是字串的意思,在 Kotlin 裡,常見變數可以分成幾個基本資料型別:數字(Number)、字串(String)、布林(Boolean)。 差別在於行為模式不同,以加法為例,數字執行數學課上的四則運算的加法,字串卻做了連接,布林則
Thumbnail
作為指揮官,如果只有一個部下也太令人傷心了。 為能夠有效率的取得大量的士兵,使用類型(Type)來廉價批發。 建立一個檔案「士兵.kt」,這次選 class,讓 IDE 幫我們初始化類別的程式碼 。 建立一個檔案「士兵.kt」,選 class 。  IDE 預設將 class 取名和檔案一樣。 初級
程式是個單純的小伙子,他會按照程式碼的內容執行動作,所以我們可以把函數當作給他的指令「單位」,不是最小單位,就只是單位。 以下是令人熱血沸騰的情境: 「射擊準備!發射角度東偏南33度,目標距離200公尺,風向正西速度每小時100公里,氣溫38度,濕度百分之20。」 「yes, my master.」
Thumbnail
現在,開始建立第一個檔案吧,一樣用最簡單的 Hello World 示範。 在 kotlin 資料夾按右鍵選擇 New 裡的 Kotlin File/Class 。 雖然有許多格式可以選,但其實只是 IDE 提供初始程式碼的差別,完全可以中途更改,我們這次選最基本的 File 格式就好。 命名檔案和
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
本章節旨在教導讀者如何在 Kotlin 中引入套件。將會涵蓋如何引用第三方套件,如何引用自定義模組,以及如何創建和引用自定義套件。此外,還會列出一些常用的套件,以供讀者參考。
Thumbnail
本文介紹 Kotlin 中的延遲初始化(lateinit)和懶加載(lazy)的使用方法,以及它們之間的差異。這些關鍵字能夠提升程式效能並簡化程式碼撰寫。
Thumbnail
在 Kotlin 程式語言中,屬性訪問 (Property Access ) 提供了一種簡潔的方式來存取 Java 類別中的公開屬性欄位,可以省去 getter 與 setter 呼叫方法。
Thumbnail
在 Kotlin 語言裡,資料型別映射指的是 Java 到 Kotlin 的資料型別轉換。例如,在 Java 裡,整數型別用「int」表示,而在 Kotlin 裡,這對應的型別是「Int」。當你在 Kotlin 存取 Java 類別的整數型別欄位值時,這些值會自動轉換成 Kotlin 對應的型別。
Thumbnail
空值例外是開發中一個常見的風險,特別是在 Kotlin 和 Java 這樣的跨平台開發中更容易出現。藉由合理地運用 Kotlin 的空值安全機制以及對 Java 程式碼的註解,可以有效地降低程式錯誤的風險,提高程式碼的可靠性和穩定性。
Thumbnail
行程 (Process),正如其名,指的是正在執行的程式 (Program),變數在其之中,是獲得命名,能保留自我的少數特殊存在。如果變數屬於全域變數 (Global Value),那麼其生命週期就會和行程一致,其他較短生命週期的都是局部變數 (Local Value)。 從一而終,在生命中止前不變
Thumbnail
接續上次的士兵類別,提到名字用了 String 變數。 String 是字串的意思,在 Kotlin 裡,常見變數可以分成幾個基本資料型別:數字(Number)、字串(String)、布林(Boolean)。 差別在於行為模式不同,以加法為例,數字執行數學課上的四則運算的加法,字串卻做了連接,布林則
Thumbnail
作為指揮官,如果只有一個部下也太令人傷心了。 為能夠有效率的取得大量的士兵,使用類型(Type)來廉價批發。 建立一個檔案「士兵.kt」,這次選 class,讓 IDE 幫我們初始化類別的程式碼 。 建立一個檔案「士兵.kt」,選 class 。  IDE 預設將 class 取名和檔案一樣。 初級
程式是個單純的小伙子,他會按照程式碼的內容執行動作,所以我們可以把函數當作給他的指令「單位」,不是最小單位,就只是單位。 以下是令人熱血沸騰的情境: 「射擊準備!發射角度東偏南33度,目標距離200公尺,風向正西速度每小時100公里,氣溫38度,濕度百分之20。」 「yes, my master.」
Thumbnail
現在,開始建立第一個檔案吧,一樣用最簡單的 Hello World 示範。 在 kotlin 資料夾按右鍵選擇 New 裡的 Kotlin File/Class 。 雖然有許多格式可以選,但其實只是 IDE 提供初始程式碼的差別,完全可以中途更改,我們這次選最基本的 File 格式就好。 命名檔案和