前言
嵌套类
在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 来源的标签: