kotlin-嵌套類和內部類

前言

嵌套類

在kotlin中一個類可以嵌套在另外一個類中例如


class Outter{
    private var bar:Int = 1

    class Nested{
        fun foo() = 2
    }
}

內部類

在潛逃類的基礎上我們在潛逃在內部的類添加一個inner關鍵字,內部的類就成了內部類,他會持有外部類的引用

class Outer {
    private val bar: Int = 1
    inner class Inner {
        fun foo() = bar
    }
}

val demo = Outer().Inner().foo() // == 1

在使用內部類的時候我們會涉及到this關鍵字的使用,在一個類當中this表示的是當前的類的對象,在擴展函數或者帶有接收者的函數字面值中, this 表示在點左側傳遞的 接收者 參數,如果 this 沒有限定符,它指的是最內層的包含它的作用域。要引用其他作用域中的 this,請使用 標籤限定符,要訪問來自外部作用域的this(一個類 或者擴展函數, 或者帶標籤的帶有接收者的函數字面值)我們使用this@label,其中 @label 是一個代指 this 來源的標籤:

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