Kotlin學習筆記 第二篇

接口:
  • 在java中實現(xiàn)接口時,接口里面的兩個方法都必須實現(xiàn),Kotlin接口如果改成這樣的話,只需要強制實現(xiàn) readBooks() 函數(shù)了,doHomework()可以選擇寫或者不寫,不寫的話則會打印do homework default implementation.。
interface Study {
    fun readBooks()
    fun doHomework() {
        println("do homework default implementation.")
    }
}
訪問修飾符:

在 Java 中一共由 public、private、protected、default(什么都不寫)這四種修飾符,在 Kotlin 中有 public、private、protected、internal 這四種修飾符,想要使用那種修飾符時直接將修飾符寫在 fun 前面即可。

  • private 修飾符在兩種語言中的作用一模一樣,都表示只對當前類內(nèi)部可見

  • public 修飾符的作用也是一致的,標識對所有類可見,但是在 Kotlin 中
    public 修飾符是默認項,而在 Java 中是 default,前面書寫的函數(shù)都沒有加訪問修飾符,那么這些函數(shù)的訪問權限全部是 public。

  • protected 在 Java 中表示對當前類,子類和同一個包路徑下的類可見,在 Kotlin 中則表示只對當前類和子類可見。

  • Kotlin 拋棄了 Java 中的 default 可見性(同一包路徑下的類可見)。引入了一種新的可見性概念,只對同一模塊中的類可見,使用的是 internal 修飾符。比如我們開發(fā)了一個模塊給別人使用,但是有一些函數(shù)只允許在模塊內(nèi)部調(diào)用,不想暴露給外部,就可以將函數(shù)聲明為 internal修飾的。

Java 和 Kotlin 可見性修飾符對照表

image.png

Kotlin 中的數(shù)據(jù)類:
  • 在 Kotlin 中只需要這一行代碼即可,其中神奇的地方在于 class 前面的 data 關鍵字,有了這個關鍵字就表明我們想要聲明一個數(shù)據(jù)類,Kotlin 會根據(jù)主構(gòu)造函數(shù)中的參數(shù)幫你將 equals()、hashCode()、toString()方法自動生成,從而減少了開發(fā)的工作量。
data class Cellphone(val brand: String, val price: Double)

fun main() {
    val cellphone1 = Cellphone("Samsung", 1299.99)
    val cellphone2 = Cellphone("Samsung", 1299.99)
    println(cellphone1)
    println("cellphone1 equals cellphone2 " + (cellphone1 == cellphone2))
} 
  • 如果將 class 前面的 data 去掉,那么它們的返回值就會變?yōu)?false。
Kotlin 中的單例類:
  • 在 Kotlin 中實現(xiàn)單例要比 Java 中簡單的多,只需要使用 object 關鍵字即可,在這其中 Kotlin 幫我們創(chuàng)建了一個 Singleton 類的實例,并且保證全局只存在一個 Singleton 實例。
object Singleton {
    fun singletonTest() {
        println("singletonTest is called.")
    }
}
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

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