前言
在編寫代碼的過程中,我們常用面向?qū)ο蟮乃季S來組織與處理問題。
于是就有了類與對象的概念。
根據(jù)類的描述,我們可以實例化一個對象。
匿名類的實例化
直接說一個我們常見的回調(diào):給一個按鈕加上點擊的監(jiān)聽事件
步驟:
- 創(chuàng)建類,這個類描述了在回調(diào)的時候,你需要做哪些事情。
- 根據(jù)剛才創(chuàng)建的類來創(chuàng)建一個對象。
在Java中,我們使用匿名內(nèi)部類可以這么寫:

匿名類
在Kotlin中,我們可以這么寫:

匿名類
從以上來看,kotlin中的object關鍵詞與java中的new差不多。
除此之外,kotlin中的object還可以這么寫:
一個對象,有多個父親的寫法
熊掌魚
-
一個對象,沒有父親的寫法
簡單的對象
說了那么多,總結(jié)一下。
針對匿名類而言,kotlin中的object關鍵詞與java中的new關鍵詞是差不多的。
單例
所謂單例,就是內(nèi)存中,只有這個類的唯一的一個對象。
單例是個很有用的模板,Java要寫一堆代碼,Kotlin則非常簡單,如下:

object聲明單例
我們可以這樣使用:
RxBus.post(1)
由單例而引發(fā)的血案
由于kotlin中沒有static關鍵詞,也就是沒法定義
類的靜態(tài)字段,靜態(tài)方法,
但是我們可以這么想:類的靜態(tài)字段,靜態(tài)方法屬于類的,在內(nèi)存中只有一份,完全可以用單例來代替
一個類的常量,我們可以這么玩
我們也可以在類的內(nèi)部這么定義:

定義
這么訪問

訪問
訪問的話,我們多寫了一個類的名字:School.Contants.name,
我們想更加簡單的這么寫:School.name怎么辦?

companion object
再簡單一點:

companion object

