kotlin允許擴充套件類的屬性和方法,不需要繼承或使用 decorator 模式。擴充套件是一種靜態行為,對被擴充套件的類**本身不會造成任何影響。
擴充套件函式定義形式:
fun
receivertype
.functionname(params)
其中,receivertype 為待擴充套件的類名,. 修飾符為擴充套件符,functionname 為自定義的擴充套件函式名,params 為自定義的擴充套件函式引數,可為空。
class
user
(var name:string)
/**擴充套件函式**/
fun user.print
()fun
main
(arg:array
)
擴充套件函式作用域,受函式的visibility modifiers影響。
擴充套件函式並沒有對原類做修改,而是為被擴充套件類的物件新增新的函式。有一條規則,若擴充套件函式和類原有函式一致,則使用該函式時,會優先使用類本身的函式。
class
user
}fun user.print
()
可以擴充套件乙個空物件
fun any?.tostring
():string
}
物件有可能為空,為空時,返回"null",而不是丟擲nullpointexception。
擴充套件屬性允許定義在類或者kotlin檔案中,不允許定義在函式中。初始化屬性因為屬性沒有backing field,所以不允許被初始化。
通常擴充套件函式或屬性定義在頂級包下,通過import匯入擴充套件的函式名進行使用。
擴充套件函式作用:簡化呼叫過程。
Kotlin 擴充套件
kotlin 可以對乙個類的屬性和方法進行擴充套件,且不需要繼承或使用 decorator 模式。擴充套件是一種靜態行為,對被擴充套件的類 本身不會造成任何影響。擴充套件函式可以在已有類中新增新的方法,不會對原類做修改,擴充套件函式定義形式 fun receivertype functionname...
Kotlin 擴充套件
伴生物件的擴充套件 擴充套件的作用域 擴充套件宣告為成員 endkotlin可以對乙個類的屬性和方法進行擴充套件,且不需要繼承或使用decorator模式。擴充套件是一種靜態行為,對被擴充套件的類 本身不會造成任何影響。擴充套件函式可以在已有類中新增新的方法,不會對原類做修改,擴充套件函式定義形式 ...
(九)kotlin擴充套件
kotlin 可以對乙個類的屬性和方法進行擴充套件,且不需要繼承或使用 decorator 模式。擴充套件是一種靜態行為,對被擴充套件的類 本身不會造成任何影響。擴充套件函式可以在已有類中新增新的方法,不會對原類做修改,擴充套件函式定義形式 fun receivertype functionname...