前言
嵌套類
在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 來源的標籤: