size: 16px"> 137
7.2.3 componentN方法与解构 138
7.2.4 数据类和返回多个值的函数 140
7.2.5 在Lambda表达式中解构 141
7.3 属性和字段 142
7.3.1 读写属性和只读属性 142
7.3.2 自定义getter和setter 144
7.3.3 幕后字段 147
7.3.4 幕后属性 148
7.3.5 延迟初始化属性 149
7.3.6 内联属性 150
7.4 隐藏和封装 151
7.4.1 包和导包 151
7.4.2 Kotlin的默认导入 153
7.4.3 使用访问控制符 153
7.5 深入构造器 155
7.5.1 主构造器和初始化块 156
7.5.2 次构造器和构造器重载 158
7.5.3 主构造器声明属性 161
7.6 类的继承 161
7.6.1 继承的语法 161
7.6.2 重写父类的方法 164
7.6.3 重写父类的属性 166
7.6.4 super限定 167
7.6.5 强制重写 168
7.7 多态 169
7.7.1 多态性 169
7.7.2 使用is检查类型 170
7.7.3 使用as运算符转型 172
7.8 本章小结 174
第8章 面向对象(下) 175
8.1 扩展 176
8.1.1 扩展方法 176
8.1.2 扩展的实现机制 179
8.1.3 为可空类型扩展方法 182
8.1.4 扩展属性 182
8.1.5 以成员方式定义扩展 183
8.1.6 带接收者的匿名函数 184
8.1.7 何时使用扩展 186
8.2 final和open修饰符 187
8.2.1 可执行“宏替换”的常量 187
8.2.2 final属性 188
8.2.3 final方法 189
8.2.4 final类 190
8.2.5 不可变类 190
8.3 抽象类 192
8.3.1 抽象成员和抽象类 192
8.3.2 抽象类的作用 195
8.3.3 密封类 196
8.4 接口 198
8.4.1 接口的定义 198
8.4.2 接口的继承 199
8.4.3 使用接口 200
8.4.4 接口和抽象类 202
8.5 嵌套类和内部类 202
8.5.1 内部类 204
8.5.2 嵌套类 207
8.5.3 在外部类以外使用内部类 209
8.5.4 在外部类以外使用嵌套类 209
8.5.5 局部嵌套类 210
8.5.6 匿名内部类 211
8.6 对象表达式和对象声明 212
8.6.1 对象表达式 212
8.6.2 对象声明和单例模式 215
8.6.3 伴生对象和静态成员 217
8.6.4 伴生对象的扩展 218
8.7 枚举类 219
8.7.1 枚举类入门 219
8.7.2 枚举类的属性、方法和构造器 221
8.7.3 实现接口的枚举类 222
8.7.4 包含抽象方法的抽象枚举类 222
8.8 类委托和属性委托 223
8.8.1 类委托 224
8.8.2 属性委托 225
8.8.3 延迟属性 227
8.8.4 属性监听 228
8.8.5 使用Map存储属性值 230
8.8.6 局部属性委托 231
8.8.7 委托工厂 233
8.9 本章小结 234
第9章 异常处理 236
9.1 异常处理机制 237
9.1.1 使用try…catch捕获异常 237
9.1.2 异常类的继承体系 240
9.1.3 访问异常信息 242
9.1.4 异常处理嵌套 243
9.1.5 try语句是表达式 243
9.2 使用throw抛出异常 243
9.2.1 抛出异常 243
9.2.2 自定义异常类 244
9.2.3 catch和throw同时使用 245
9.2.4 异常链 246
9.2.5 throw语句是表达式 247
9.3 异常的跟踪栈 248
9.4 本章小结 250
第10章 泛型 251
10.1 泛型入门 252
10.1.1 定义泛型接口、类 252
10.1.2 从泛型类派生子类 253
10.2 型变 254
10.2.1 泛型型变的需要 254
10.2.2 声明处型变 256
10.2.3 使用处型变:类型投影 258
10.2.4 星号投影 260
10.3 泛型函数 261
10.3.1 泛型函数的使用 261
10.3.2 具体化类型参数 262
10.4 设定类型形参的上限 263
10.5 本章小结 264
第11章 注解 266
11.1 Kotlin注解入门 267
11.1.1 定义注解 267
11.1.2 注解的属性和构造器 268
11.2 元注解 270
11.2.1 使用@Retention 270
11.2.2 使用@Target 271
11.2.3 使用@MustBeDocumented 272
11.2.4 使用@Repeatable标记可重复注解 273
11.3 使用注解 273
11.3.1 提取注解信息 273
11.3.2 使用注解的示例 274
11.4 Java注解与Kotlin的兼容性 279
11.4.1 指定注解的作用目标 279
11.4.2 使用Java注解 281
11.5 本章小结 282
第12章 Kotlin与Java互相调用 283
12.1 Kotlin调用Java 284
12.1.1 属性 284
12.1.2 void和调用名为关键字的成员 285
12.1.3 Kotlin的已映射类型 286
12.1.4 Kotlin对Java泛型的转换 287
12.1.5 对Java数组的处理 287
12.1.6 调用参数个数可变的方法 288
12.1.7 checked异常 289
12.1.8 Object的处理 289
12.1.9 访问静态成员 290
12.1.10 SAM转换 290
12.1.11 在Kotlin中使用JNI 291
12.2 Java调用Kotlin 291
12.2.1 属性 291
12.2.2 包级函数 292
12.2.3 实例变量 294
12.2.4 类变量 294
12.2.5 类方法 296
12.2.6 访问控制符的对应关系 297
12.2.7 获取KClass 298
12.2.8 使用@JvmName解决签名冲突 298
12.2.9 生成重载 299
12.2.10 checked异常 300
12.2.11 泛型的型变 300
12.3 Kotlin反射 302
12.3.1 类引用 302
12.3.2 从KClass获取类信息 303
12.3.3 创建对象 306
12.3.4 构造器引用 306
12.3.5 调用方法 307
12.3.6 函数引用 308
12.3.7 访问属性值 309
12.3.8 属性引用 311
12.3.9 绑定的方法与属性引用 313
12.4 本章小结 313
资源截图:
嗨,这是一条评论。 要开始审核、编辑及删除评论,请访问仪表盘的“评论”页面。 评论者头像来自Gravatar。