快速上手 Kotlin 開發(fā)系列之伴生對(duì)象

本節(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)注~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 寫在開頭:本人打算開始寫一個(gè)Kotlin系列的教程,一是使自己記憶和理解的更加深刻,二是可以分享給同樣想學(xué)習(xí)Kot...
    胡奚冰閱讀 1,524評(píng)論 5 11
  • Kotlin的類和接口與Java的類和接口是有一定的區(qū)別的。Kotlin的接口是可以包含屬性聲明。Kotlin默認(rèn)...
    程自舟閱讀 10,520評(píng)論 0 11
  • Kotlin 調(diào)用 Java 由于 Kotlin本身并沒(méi)有提供強(qiáng)大的類庫(kù)支持,Kotlin只是一種語(yǔ)言,因此 Ko...
    凌寒天下獨(dú)自舞閱讀 14,245評(píng)論 0 10
  • 面向?qū)ο缶幊蹋∣OP) 在前面的章節(jié)中,我們學(xué)習(xí)了Kotlin的語(yǔ)言基礎(chǔ)知識(shí)、類型系統(tǒng)、集合類以及泛型相關(guān)的知識(shí)。...
    Tenderness4閱讀 4,621評(píng)論 1 6
  • “愛情中最殘忍的事,是你千般萬(wàn)般對(duì)一個(gè)人好了那么多年,付出了那么多年,等待了那么多年,以為木已成舟,卻被陌生人用一...
    木錦萱閱讀 915評(píng)論 1 3

友情鏈接更多精彩內(nèi)容