【Kotlin 入門指南】系列文章目錄:https://bit.ly/3t8awwL
Kotlin 線上課程教學影片:https://bit.ly/3qJ5a5Q
Companion Object
Companion Object(伴生物件),它允許在類別內建立一個專屬的物件,這個物件與該類別相關聯,可用來存取該類別的屬性和函數。透過 Companion Object,你能夠實現類似於 Java 中的靜態成員的功能。
Companion Object 伴生物件範例
class MyClass {
companion object {
const val CONSTANT_VALUE = 666
val instance = MyClass()
}
fun myFun(){
println("myFun...")
}
}
fun main() {
println(MyClass.instance)//MyClass@4c203ea1
println(MyClass.instance)//MyClass@4c203ea1
println(MyClass.CONSTANT_VALUE)//666
MyClass.instance.myFun()//myFun..
}
在這範例中,MyClass
內部有一個 Companion Object,使用 companion object
關鍵字定義。你可以在 Companion Object 中定義屬性、函數,甚至是常數,而這些可以直接通過 MyClass
類別的名稱來存取,例如 MyClass.CONSTANT_VALUE
或 MyClass.myFunction()
。
Companion Object 的特性
- 與類別相關聯: Companion Object 被限定在它所在的類別內部,可以直接存取該類別的屬性和函數。
- 靜態成員的替代: Kotlin 沒有 Java 中的靜態成員,Companion Object 提供了一種方式來實現類似功能,同時保持了物件導向的特性。
- 初始化: Companion Object 在第一次被訪問時初始化,就像是靜態初始化一樣,並且僅在需要時才會被創建。
使用情境
- 工具函數: 如果你有一組與特定類別相關的實用函數,可以將它們放置在 Companion Object 中,方便全域存取。
- 常數定義: 在 Companion Object 中定義常數,例如預設值或常用數值,便於管理和使用。