Kotlin- object

一、 object關鍵字

object 關鍵字可以表達兩種含義:一種是對象表達式,另一種是 對象聲明

1、對象表達式

繼承一個匿名對象

val textView = findViewById<TextView>(R.id.tv)
textView.setOnClickListener(object : OnClickListener {
        override fun onClick(p0: View?) {
            Toast.makeText(this@TestActivity, "點擊事件生效", Toast.LENGTH_LONG)
        }

})

上面代碼其實就是我們經常要給 view 設置的點擊事件,OnClickListener 事件是一個匿名類的對象,用object來修飾。

2、對象聲明

object 修飾的類爲靜態類,裏面的方法和變量都爲靜態的。

2.1 直接聲明類

object DemoManager {
    private val TAG = "DemoManager"
        
    fun a() {
        Log.e(TAG,"此時 object 表示 聲明靜態內部類")
    }
    
}

2.2 聲明靜態內部類

類內部的對象聲明,沒有被inner 修飾的內部類都是靜態的

class DemoManager{
    object MyObject {
        fun a() {
            Log.e(TAG,"此時 object 表示 直接聲明類")
        }
    }
}

如果需要調用 a()方法

kotlin中調用

fun init() {
    MyObject.a()
}

java中調用

 MyObject.INSTANCE.a();
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章