1快速入门 1
1.1简介 1
1.2编写第一个Hello World程序 3
1.3程序结构 10
1.3.1 Kotlin源码结构 10
1.3.2包声明与导入 11
1.3.3后缀名 14
1.4 Kotlin标准库 14
2基本语法 19
2.1基本类型 19
2.1.1数字 20
2.1.2字符串 23
2.2变量与常量 24
2.2.1常量 24
2.2.2属性包装 25
2.3函数 30
2.3.1函数声明 30
2.3.2闭包 35
2.3.3 lambda表达式 40
2.3.4内联函数 54
3封装 58
3.1构造函数与实例化 60
3.1.1构造函数漫谈 60
3.1.2 Kotlin构造函数 62
3.1.3简化的主构造函数 63
3.1.4二级构造函数 66
3.1.5 C++构造函数与参数列表 69
3.1.6默认构造函数与覆盖 71
3.1.7构造函数访问权限与缺省 73
3.2内存分配 75
3.2.1 JVM内存模型 75
3.2.2类元信息 80
3.2.3创建类实例 87
3.3初始化 89
3.3.1用构建器自动初始化 89
3.3.2成员变量初始化 90
3.3.3 init{}初始化 92
3.3.4声明时初始化 96
3.3.5初始化顺序 98
3.4类成员变量 103
3.4.1赋初值 103
3.4.2访问权限 111
3.5数组 115
3.5.1通过Array接口声明数组 116
3.5.2数组读写 119
3.5.3声明引用型数组 120
3.5.4使用其他方式声明数组 123
3.5.5多维数组 129
3.5.6数组与列表转换 131
3.6静态函数与伴随对象 132
3.6.1伴随对象 133
3.6.2名称省略与实例化 135
3.6.3伴随对象中的属性 136
3.6.4伴随对象的初始化 137
3.6.5伴随对象的原理 139
3.6.6匿名类 145
4继承 149
4.1继承基础概念 149
4.1.1继承语法 149
4.1.2接口 152
4.1.3虚类 165
4.2多重继承 168
4.2.1类与接口的多重继承 168
4.2.2构造函数继承 170
4.2.3接口方法的多重继承 174
4.3继承初始化 176
4.4类型转换 179
5多态 183
5.1概念 183
5.1.1重写 184
5.1.2重载 185
5.2扩展 189
5.2.1概念 189
5.2.2 Kotlin的扩展 191
5.2.3扩展与重载 193
5.2.4函数扩展的多态性 196
5.2.5函数扩展原理 201
5.2.6属性扩展 203
5.3操作符重载 204
5.3.1 Kotlin中的操作符重载 205
5.3.2通过扩展函数重载操作符 207
5.3.3操作符重载原理 208
5.3.4操作符重载限制 209
5.3.5中缀符 211
5.4指针与传递 212
5.4.1 Java中的类型与传递 213
5.4.2按值/引用传递的终结者 216
5.4.3 this指针 218
5.4.4类函数调用机制与this 222
6Kotlin的I/O 224
6.1 Java I/O类库 224
6.2 Kotlin I/O类库 231
6.3终端I/O 234
6.4文件I/O 237
6.5文件压缩示例 239
6.6序列化 241
6.6.1 Kotlin的序列化 242
6.6.2序列化控制 245
7Kotlin机制 247
7.1函数定义 247
7.1.1顶级函数 247
7.1.2内联函数 250
7.2变量与属性 257
7.2.1属性包装 257
7.2.2延迟初始化 261
7.2.3 let语法糖 264
7.3类定义 266
7.3.1 Java内部类 267
7.3.2 Kotlin中的类 272
7.3.3 Kotlin类对顶级属性和方法的访问 274
7.3.4 Kotlin类中的成员变量 276
7.3.5单例对象 279