1.inner關(guān)鍵字修飾表示內(nèi)部類
kotlin內(nèi)部類與嵌套類的區(qū)別是:
1.內(nèi)部類會(huì)帶有一個(gè)外部類的對(duì)象的引用,嵌套類則沒有。
2.內(nèi)部類需要使用 inner class 定義,而嵌套類則使用 class 定義。
Kotlin內(nèi)部類會(huì)帶有一個(gè)對(duì)外部類的對(duì)象的引用,所以內(nèi)部類可以訪問(wèn)外部類成員屬性和成員函數(shù)。
Kotlin 內(nèi)部類使用 this@[外部類名] 持有外部類對(duì)象的引用。
class OutClass {
var name ="噠噠1"
//inner表示內(nèi)部類
inner class innerClass{
var name = "噠噠2"
fun hello(){
println("你好$name")
//內(nèi)部類使用this,訪問(wèn)外部類的變
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