/**
* 内部类
* 1.kotlin默认的内部类是静态内部类,不能持有外部类的状态(属性、方法等)
* 2.给内部类加上inner关键词之后,就会变成非静态内部类,可以访问外部类的属性和方法
* 3.非静态内部类想访问外部类的属性,可以使用 this@外部类名.外部类属性名 的形式访问
* 4.非静态内部类可以访问到外部静态内部类的方法和属性,静态内部类访问不到外部所有的属性和方法
*/
class Outer { //外部类
private val text: String = "I like this world"
class Inner { //静态内部类
private val text: String = "NEW"
fun show() {
// println(this@Outer.text) //此处访问不到
println(this.text) //访问Inner中的text
}
}
inner class Inner2 { //非静态内部类
private val text: String = "Great"
fun show2() {
println(this.text) //访问Inner2中的text
println(this@Outer.text) //此处的写法相当于java中的Outer.this.text
}
}
}
fun main(args: Array<String>) {
val inner = Outer.Inner() //静态内部类
val inner2 = Outer().Inner2() //非静态内部类
inner.show()
inner2.show2()
}
Kotlin学习笔记(三十八)内部类
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 系列文章全部为本人的学习笔记,若有任何不妥之处,随时欢迎拍砖指正。如果你觉得我的文章对你有用,欢迎关注我,我们一起...
- 前言 密封类,可以理解为枚举,规定了有限个类型,不可以存在其他类型,但枚举每个枚举常量只存在一个示例,但是密封类的...