1.inner关键字修饰表示内部类
kotlin内部类与嵌套类的区别是:
1.内部类会带有一个外部类的对象的引用,嵌套类则没有。
2.内部类需要使用 inner class
定义,而嵌套类则使用 class
定义。
Kotlin内部类会带有一个对外部类的对象的引用,所以内部类可以访问外部类成员属性和成员函数。
Kotlin 内部类使用 this@[外部类名]
持有外部类对象的引用。
class OutClass {
var name ="哒哒1"
//inner表示内部类
inner class innerClass{
var name = "哒哒2"
fun hello(){
println("你好$name")
//内部类使用this,访问外部类的变
println("你好${this@OutClass.name}")
}
}
companion object{
@JvmStatic
fun main(args: Array<String>) {
var ot=OutClass().innerClass()
ot.hello()
}
}
}
打印如下:
你好哒哒2
你好哒哒1
Process finished with exit code 0