本節(jié)將介紹 Kotlin 中的訪問(wèn)修飾符、伴生對(duì)象以及推薦單例的寫法。
訪問(wèn)修飾符
在 Kotlin 中有四種訪問(wèn)符:
- public
- protected
- private
- internal
前面三種有 Java 基礎(chǔ)的讀者肯定都比較了解。public 具有最大的訪問(wèn)權(quán)限,可以訪問(wèn)任意路徑的類、接口、成員變量;protected 表示子類可以訪問(wèn)它修飾的父類成員變量;private 表示訪問(wèn)權(quán)限僅限于類的內(nèi)部;而 internal 是 Kotlin 特有的訪問(wèn)修飾符,表示一個(gè)模塊內(nèi)都能訪問(wèn)到這個(gè)對(duì)象。
模塊是什么概念呢?我們?cè)?Android Studio 中看下:
通過(guò) File -> New -> New Module 創(chuàng)建出來(lái)的就是一個(gè)模塊。
internal 修飾符更多用于項(xiàng)目中的結(jié)構(gòu)化擴(kuò)展以及模塊化等場(chǎng)景。
伴生對(duì)象
在 Java 中我們經(jīng)常使用類似示例中的工具類,可以直接通過(guò) 類名.方法名 來(lái)調(diào)用。
但是在 Kotlin 中是沒(méi)有靜態(tài)方法的,解決的辦法有兩種,一種方法就是前面提到過(guò)的使用 @JvmStatic 注解去注釋它,第二種方法就是使用伴生對(duì)象的方式創(chuàng)建:
伴生對(duì)象一定要寫在一個(gè)類的內(nèi)部,作為這個(gè)類的一個(gè)伴生對(duì)象存在,伴生對(duì)象使用 companion object 兩個(gè)關(guān)鍵字來(lái)聲明。在 Kotlin 中就可以像 Java 調(diào)用靜態(tài)方法一樣,直接使用 類名.方法名 來(lái)使用。
而在 Java 中則需要通過(guò)靜態(tài)變量 Companion 來(lái)調(diào)用,實(shí)際上,這個(gè) Companion 是編譯器幫我們生成的一個(gè)對(duì)象,用來(lái)訪問(wèn)內(nèi)部的方法和變量。
單例
前面的文章中介紹過(guò) Kotlin 中一種單例的寫法,其實(shí)更推薦的寫法是使用伴生對(duì)象和 object 關(guān)鍵字結(jié)合的方式,示例如下:
以上就是本節(jié)內(nèi)容,歡迎大家關(guān)注~