Kotlin编程之嵌套类,内部类,匿名内部类
来源:互联网 发布:猫云seo 编辑:程序博客网 时间:2024/05/17 03:08
Kotlin编程相关知识点介绍:
- Kotlin编程之使用Intellij IED和了解源文件(.kt)
- Kotlin编程之类的介绍和使用
- Kotlin编程之类的属性
- Kotlin编程之方法
- Kotlin编程之父类和继承父类
- Kotlin编程之接口和实现接口
- Kotlin编程之伴生对象,抽象类,密封类
和Java编程类似,在Kotlin编程也有嵌套类和内部类,及匿名内部类。
开始编写一个案例,来了解这三者,代码如下:
package com.xingen.kotlin.day2017529fun main(args: Array<String>) { /** * 调用嵌套类中的方法 */ Test.Nested().nestedTest() var instance = Test() /** * 调用内部类中的方法 */ instance.Inner().innerTest() /** * 采用对象表达式来创建接口对象,即匿名内部类的实例。 */ instance.setInterFace(object : TestInterFace { override fun test() { println("对象表达式创建匿名内部类的实例") } })}class Test { var v = "成员属性" /** * 一个在类中嵌套的类 * 引用不到外层嵌套类的成员 */ class Nested { fun nestedTest() { println("类可以嵌套其他类中") } } /** * inner标记一个类是内部类 * 可以引用外部类的成员 * 采用this@类名方式,获取到外部类的this对象 */ inner class Inner { fun innerTest() { var t = this@Test //获取外部类的成员变量 println("内部类可以引用外部类的成员,例如:" + t.v) } } fun setInterFace(test: TestInterFace) { test.test() }}/** * 定义接口 */interface TestInterFace { fun test()}
输出结果:
类可以嵌套其他类中内部类可以引用外部类的成员,例如:成员属性对象表达式创建匿名内部类的实例
可知:
类中可以嵌套类,创建嵌套类对象方式 :
外部类名.嵌套类()
,嵌套类引用不了外部类的成员,这和Java类似,相当于隐式的外部类。用
inner
标记的嵌套类是内部类,创建内部类的对象的方式 :外部类名().Inner()
。可以引用外部类的成员,引用外部类的this对象的方式 :var v=this@外部类名
通过对象表达式来 创建匿名内部类的对象,可以避免重写抽象类的子类和接口的实现类,这和Java中匿名内部类的是接口和抽象类的延伸一致。
阅读全文
1 0
- Kotlin编程之嵌套类,内部类,匿名内部类
- Kotlin之匿名内部类
- 匿名内部类、内部类、嵌套类
- java 内部类、匿名内部类、嵌套类的使用
- 嵌套类,内部类,匿名内部类再学习
- java内部类,内部类的共性,成员内部类,方法内部类匿名内部类,静态嵌套类,不解
- Kotlin嵌套类和内部类
- 匿名类、内部类、匿名内部类
- 匿名类、内部类、匿名内部类
- 匿名类、内部类、匿名内部类
- 匿名类,内部类,匿名内部类
- 内部类(嵌套类、内置类)访问规则、定义原则、静态内部类、匿名内部类
- 常规内部类、局部内部类、匿名内部类和静态嵌套类小结
- java内部类之匿名内部类
- Java内部类之匿名内部类
- Java中的内部类 普通嵌套类 局部内部类 匿名内部类 静态内部类 浅析
- 匿名类内部类
- 内部类-匿名类
- Leetcode——3. Longest Substring Without Repeating Characters
- android build 过程 (ramdisk.img、sytem.img、userdata.img)和 启动过程简单分析
- matlab实现一次性实现多个文件夹图片转化为.mat文件
- 无穷大量
- activity异常生命周期下的退出数据保存的方法
- Kotlin编程之嵌套类,内部类,匿名内部类
- 修改windows 7以后的无线网卡mac地址
- RecyclerView里嵌套带小圆点的无限轮播
- 查找细胞
- autohotkey将大写键转换为enter键,将~键转换为backSpace键
- JPEG分析及解码
- Spring 依赖注入方式
- 视觉注意力的循环神经网络模型
- [Redis]Redis指南一 数据类型