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