摘要: 示例代码 执行结果: 阅读全文
posted @ 2019-06-27 14:56 谢光伟 阅读(4098) 评论(0) 推荐(0) 编辑
摘要: 1.委托工厂 (1)概念 ​ 委托工厂顾名思义:生产委托对象的工厂类。 (2)定义 ​ 该类实现了operator修饰的provideDelegate方法,返回ReadWriteProperty/ReadOnlyProperty,该类就可提供对应类型的委托对象。 运行结果: 2.委托属性应用 使用M 阅读全文
posted @ 2019-06-14 12:01 谢光伟 阅读(713) 评论(0) 推荐(0) 编辑
摘要: 1.延迟属性 (1)概念 ​ 属性通过lazy()函数返回Lazy作为委托对象实现 延迟初始化 ,返回的Lazy对象实现了getValue符合只读委托属性的方法,因此可作为只读属性的委托对象。 lazy(initializer: () T)方法传入一个lambda表达式返回需要委托的属性初始值,并返 阅读全文
posted @ 2019-06-11 15:32 谢光伟 阅读(2103) 评论(0) 推荐(0) 编辑
摘要: 1.类委托 (1)概念 ​ 本类需要实现的 方法/属性 ,借用其他已实现该 方法/属性 的对象作为自己的实现; ​ 一旦使用了某类作为委托类,该类就能借用该委托类实现的方法/属性。 (2)定义 ①委托类作为构造器形参传入(常用) ②新建委托类对象 ③新建委托类对象,并自己实现方法/属性 调用示例: 阅读全文
posted @ 2019-06-10 16:28 谢光伟 阅读(3769) 评论(0) 推荐(0) 编辑
摘要: 1.概念 ​ 与Java一样,枚举类是一种特殊的类,kotlin可以通过enum class关键字定义枚举类。 2.注意点 枚举类可以实现0~N个接口; 枚举类默认继承于kotlin.Enum类(其他类最终父类都是Any),因此kotlin枚举类 不能继承类 ; 非抽象枚举类不能用open修饰符修饰 阅读全文
posted @ 2019-06-04 14:15 谢光伟 阅读(2968) 评论(0) 推荐(0) 编辑
摘要: 1.概念 ​ 在对象声明的前面加上 companion 关键字就生成了伴生对象。作用就是为其所在的外部类 模拟静态成员 。 ​ 语法:(ObjectName可省略) 2.特点 每个类最多定义一个伴生对象; 伴生对象 相当于 外部类的对象,可以直接通过外部类名访问伴生对象的成员; 由于kotlin取消 阅读全文
posted @ 2019-06-01 17:54 谢光伟 阅读(2705) 评论(0) 推荐(0) 编辑
摘要: 1.概念 ​ 对象声明是专门用来创建 单例模式 用的。 ​ 语法格式: 2.特点(对比对象表达式) 对象表达式是表达式,可以用于赋值 对象声明不是表达式,不能用于赋值; 对象表达式能包含内部类,但不能包含嵌套类 对象声明能包含嵌套类,但不能包含内部类; 对象表达式能定义为局部变量(即定义在方法/函数 阅读全文
posted @ 2019-06-01 16:52 谢光伟 阅读(870) 评论(0) 推荐(0) 编辑
摘要: 1.概念 ​ kotlin使用对象表达式代替java的 匿名内部类 语法。 ​ 语法格式: 2.特点 对象表达式不能是抽象类; 对象表达式不能定义构造器; 对象表达式可以包含内部类(inner),但不能包含嵌套类; 对象表达式可以访问或修改所在局部范围的变量(相比之下,java只能访问effecti 阅读全文
posted @ 2019-06-01 16:11 谢光伟 阅读(1699) 评论(0) 推荐(0) 编辑
摘要: 1.含义 在方法和属性中:this代表调用该方法和属性的对象; 在构造器中:this代表该构造器即将返回的对象; 在扩展函数或者带接收者的匿名扩展函数中:this代表“.”左边的接收者; 如果this没有限定符,this优先代表最内层接收者,并依次向外搜索。 2.示例 3.this带限定符 阅读全文
posted @ 2019-05-31 18:57 谢光伟 阅读(5153) 评论(0) 推荐(0) 编辑
摘要: 1.概念 ​ 把类定义在其他类里面,定义在其他类内部的类即为嵌套类(或者寄生类),包含嵌套类的类称为外部类(或者宿主类)。 ​ 根据定义的方式不一样,又分为 内部类 、 嵌套类 、 局部嵌套类 。 ​ 内部类、嵌套类相当于外部类成员之一,可以使用public|internal|protected|p 阅读全文
posted @ 2019-05-29 20:08 谢光伟 阅读(7536) 评论(0) 推荐(1) 编辑