目录
=
第1篇 准备
=
第1章 了解Kotlint2
1.1 Kotlin能干什么t2
1.2 Kotlin的优势t3
1.3 如何使用本书t3
-
第2章 体验Kotlint4
2.1 搭建开发环境t4
O2.1.1 搭建Java的开发环境t4
O2.1.2 搭建Kotlin的开发环境t6
2.2 使用RPHLt6
O2.2.1 认识RPHL――快速验证代码的利器t6
O2.2.2 实例1:在RPHL中进行四则运算t6
2.3 Kotlin的IDE支持t7
O2.3.1 使用IDEA/Android Studiot7
O2.3.2 使用Eclipset7
2.4 Kotlin 的构建工具t8
O2.4.1 使用Mavent8
O2.4.2 使用Gradlet10
2.5 基本概念t10
O2.5.1 源文件与字节码文件t10
O2.5.2 标识符与关键字t11
O2.5.3 语句和代码块t11
O2.5.4 注释t11
O2.5.5 main()函数t13
2.6 本章小结t14
=
第2篇 入门
=
第3章 次动手t16
3.1 实例2: 个Kotlin脚本――四则运算t16
O3.1.1 了解Kotlin脚本t16
O3.1.2 编写Kotlin脚本t16
O3.1.3 运行脚本t16
3.2 实例3: 个Kotlin应用――Hello Kotlint17
O3.2.1 了解Kotlin应用t17
O3.2.2 编写代码t17
O3.2.3 编译代码t17
O3.2.4 运行代码t18
3.3 本章小结t18
-
第4章 变量和常量t19
4.1 变量t19
O4.1.1 了解变量t19
O4.1.2 创建变量t19
4.2 常量(值)t20
O4.2.1 了解常量(值)t21
O4.2.2 创建常量(值)t21
4.3 实例4:对比变量和常量t21
4.4 本章小结t22
=
第5章 数据类型t23
5.1 了解数据类型分类t23
5.2 “数值”类型――表示数字t23
O5.2.1 数值类型的基本分类t23
O5.2.2 整型、长整型与短整型t24
O5.2.3 单精度与双精度浮点类型t26
O5.2.4 实例5:用“数值”类型进行转账操作t27
5.3 “字符”与“字符串”类型――表示文本t27
O5.3.1 字符类型t28
O5.3.2 字符串类型――一组字符的集合t28
O5.3.3 字符串类型的常用方法t29
O5.3.4 了解字符串模板――在字符串中使用表达式t31
O5.3.5 实例6:用字符串模板编写SQL语句t32
O5.3.6 了解多行文字――原样输出多行语句t33
O5.3.7 实例7:用多行字符串排版文字t34
5.4 “字节”类型――表示二进制t35
5.5 “布尔”类型――真或假t35
5.6 Kotlin的可空类型t35
O5.6.1 空值――没有存储空间t35
O5.6.2 可空类型――可能是空值,也可能不是t36
O5.6.3 非空类型――不能为空值t37
O5.6.4 实例8:用安全操作符避免空指针t37
5.7 Kotlin的内置类型结构t39
O5.7.1 Any类型――所有类的父类t39
O5.7.2 Unit类型――什么都不返回t39
O5.7.3 Nothing类型――什么都没有t39
5.8 类型转换与类型判断t40
O5.8.1 数值类型转换t40
O5.8.2 自动类型转换t40
O5.8.3 强制类型转换t41
O5.8.4 类型提升t41
O5.8.5 安全类型转换t41
O5.8.6 类型判断与智能转换t42
5.9 类型别名t42
5.10 本章小结t43
=
第6章 操作符t44
6.1 认识操作符t44
6.2 一元操作符t44
O6.2.1 正负操作符t44
O6.2.2 自增操作符与自减操作符t45
O6.2.3 否定操作符t45
6.3 二元操作符t46
O6.3.1 四则运算操作符t46
O6.3.2 复合操作符t46
O6.3.3 比较操作符t47
O6.3.4 位运算方法t48
O6.3.5 猫王操作符t49
O6.3.6 相等性t49
O6.3.7 in和!in操作符t50
O6.3.8 索引操作符t51
O6.3.9 区间操作符t51
6.4 操作符重写t51
6.5 本章小结t52
=
第7章 流程控制t53
7.1 条件语句t53
O7.1.1 if语句t53
O7.1.2 if表达式t55
O7.1.3 when语句t56
O7.1.4 when表达式t57
O7.1.5 实例9:when语句的多种用法t57
7.2 循环语句t59
O7.2.1 while循环t60
O7.2.2 for循环t61
O7.2.3 实例10:用for循环替代while循环t62
O7.2.4 repeat语句t62
7.3 跳转语句t63
O7.3.1 continue语句――跳过当前循环t63
O7.3.2 break语句――停止循环t64
O7.3.3 实例11:用continue语句和break语句替换标签t65
7.4 本章小结t65
=
第8章 数组类型t67
8.1 数组t67
O8.1.1 了解数组――一组相同类型的数据t67
O8.1.2 创建数组t67
O8.1.3 实例12:数组的常用操作t70
8.2 多维数组t72
O8.2.1 了解多维数组――数组的元素也是数组t72
O8.2.2 实例13:用多维数组输出图形t73
8.3 本章小结t74
=
第9章 集合类型t75
9.1 列表(List)类型t75
O9.1.1 列表――有序的一组数据t75
O9.1.2 不可变列表t75
O9.1.3 可变列表t77
O9.1.4 空列表t78
O9.1.5 实例14:列表类型的常用方法t79
9.2 集(Set)类型t82
O9.2.1 集――不重复的一组数据t82
O9.2.2 不可变集t82
O9.2.3 可变集t82
O9.2.4 空集t84
O9.2.5 实例15:集类型的常用方法t84
9.3 区间(Range)类型t85
O9.3.1 了解区间――连续的一组数据t85
O9.3.2 实例16:区间类型的常用方法t87
9.4 序列(Sequence)类型t88
O9.4.1 了解序列――一组数据t88
O9.4.2 实例17:序列类型的常用方法t88
9.5 本章小结t89
=
第3篇 进阶
=
0章 映射类型t94
10.1 了解映射――通过名字找到值t94
10.2 创建不可变映射t94
10.3 创建可变映射t95
10.4 创建空映射t97
10.5 实例18:映射的常用方法t97
O10.5.1 获得映射的长度t97
O10.5.2 通过键访问值t97
O10.5.3 修改可变映射t99
O10.5.4 删除可变映射中的元素t100
O10.5.5 遍历映射t100
10.6 本章小结t101
=
1章 类与对象t102
11.1 函数的概念与使用t102
O11.1.1 了解函数――重用一组语句t102
O11.1.2 认识函数的基本结构t102
11.2 函数的返回值t103
O11.2.1 在函数中返回值t103
O11.2.2 了解返回值的数据类型t104
O11.2.3 实例19:在函数中同时返回多个值t104
11.3 函数的参数t105
O11.3.1 了解函数的参数t105
O11.3.2 命名参数t106
O11.3.3 变参――在无法确定参数个数时使用t107
O11.3.4 参数的默认值t109
O11.3.5 单表达式函数t109
11.4 类的概念与使用t110
O11.4.1 了解类――同一种概念的抽象t110
O11.4.2 类的基本结构t110
O11.4.3 实例20:定义一个电脑类t111
11.5 对象t112
O11.5.1 了解对象――类的具体实现t112
O11.5.2 创建对象t113
O11.5.3 访问对象的属性和方法t113
11.6 构造方法t114
O11.6.1 了解构造方法――如何创建对象t114
O11.6.2 主构造方法与初始化代码t114
O11.6.3 副构造方法t116
11.7 属性t118
O11.7.1 了解属性和字段t118
O11.7.2 使用默认的Getter和Setter访问器t119
O11.7.3 自定义Getter和 Setter访问器t119
O11.7.4 幕后字段t121
O11.7.5 延迟初始化属性t121
O11.7.6 内联属性t123
11.8 方法t123
O11.8.1 infix方法t123
O11.8.2 componentN方法t124
11.9 this关键字t125
11.10 实例21:创建用户登录管理系统t126
O11.10.1 创建用户类t126
O11.10.2 创建用户管理类t128
O11.10.3 创建客户端t131
11.11 本章小结t132
=
2章 类的进阶用法t133
12.1 嵌套类――在类中定义类t133
12.2 内部类――将类作为另一个类的成员t134
12.3 对象声明――单例对象t134
12.4 伴生对象――代替静态成员t135
O12.4.1 了解伴生对象――类中的单例对象t135
O12.4.2 伴生对象的应用t136
12.5 对象表达式――匿名类t137
O12.5.1 创建对象表达式t137
O12.5.2 匿名对象的类型限制t138
12.6 数据类――贫血模型t140
O12.6.1 创建数据类t140
O12.6.2 了解内置方法的限制规则t142
O12.6.3 了解对象间的复制t144
12.7 枚举类――常量集t145
O12.7.1 创建枚举类t146
O12.7.2 实例22:用枚举类处理日期t147
12.8 密封类t150
12.9 本章小结t150
=
3章 继承、抽象类与接口t152
13.1 继承t152
O13.1.1 了解继承――为现有类增加功能t152
O13.1.2 什么样的类才能被继承t152
O13.1.3 使用继承t153
O13.1.4 重写方法t153
O13.1.5 重写属性t154
O13.1.6 子类访问父类成员――super关键字t155
13.2 抽象类t156
O13.2.1 了解抽象类――定义模板t156
O13.2.2 使用抽象类t156
13.3 接口t157
O13.3.1 了解接口t157
O13.3.2 使用接口t158
13.4 is-a关系t159
13.5 重写规则t160
13.6 实例23:用继承绘制一个手机屏幕t161
13.7 本章小结t165
=
4章 包管理与访问控制符t166
14.1 包――一组相关代码的集合t166
O14.1.1 声明包t166
O14.1.2 导入包t167
O14.4.3 默认导入包t168
14.2 访问控制符――控制成员是否可以被访问t168
O14.2.1 访问控制符的分类t168
O14.2.2 构造方法上的访问控制符t169
O14.2.3 类成员上的访问控制符t169
14.3 其他控制符t170
O14.3.1 open控制符和final控制符t171
O14.3.2 override控制符t171
14.4 本章小结t171
=
5章 正则表达式t172
15.1 正则表达式的作用t172
15.2 使用正则表达式t172
O15.2.1 创建正则表达式对象t172
O15.2.2 匹配数据t173
O15.2.3 提取数据t173
O15.2.4 替换数据t174
O15.2.5 正则分组t174
15.3 实例24:用正则表达式解析网页t175
15.4 本章小结t177
=
6章 泛型t178
16.1 了解泛型t178
O16.1.1 泛型的概念t178
O16.1.2 为什么要有泛型t178
16.2 泛型的使用t179
O16.2.1 泛型函数t179
O16.2.2 泛型类t180
16.3 类型参数约束t181
O16.3.1 上界的概念t181
O16.3.2 单个上界t181
O16.3.3 多个上界t182
O16.3.4 隐式上界t182
16.4 类型型变t183
O16.4.1 型变t183
O16.4.2 在声明处协变t184
O16.4.3 在声明处逆变t185
O16.4.4 类型参数边界――在使用处型变t186
O16.4.5 星号投影t186
16.5 类型擦除t187
O16.5.1 类型擦除的概念t187
O16.5.2 内联函数和类型擦除t188
16.6 实例25:用泛型实现数据的持久化t188
16.7 本章小结t191
=
第4篇 高阶
=
7章 扩展与委托t194
17.1 扩展――为现有类增加功能t194
O17.1.1 扩展方法t194
O17.1.2 扩展属性t195
O17.1.3 扩展伴生对象t196
O17.1.4 扩展可空类型t196
O17.1.5 静态绑定t197
17.2 委托――继承的替代方案t198
O17.2.1 使用方法委托t198
O17.2.2 使用属性委托t200
O17.2.3 使用内置的属性委托t201
O17.2.4 委托工厂类t205
17.3 本章小结t207
=
8章 函数的 应用t208
18.1 高阶函数t208
O18.1.1 函数类型t208
O18.1.2 将函数作为参数t210
O18.1.3 将函数作为返回值t210
18.2 匿名函数与函数表达式t212
18.3 Lambda表达式t212
O18.3.1 使用Lambda表达式t213
O18.3.2 隐式参数 itt214
O18.3.3 作为参数的Lambda表达式t214
O18.3.4 在Lambda表达式中返回数据t215
18.4 内联函数t216
O18.4.1 创建内联函数t217
O18.4.2 取消参数内联t218
O18.4.3 本地返回与非本地返回t218
18.5 尾递归函数t219
18.6 函数式编程t220
O18.6.1 map()方法t220
O18.6.2 flatMap()方法t221
O18.6.3 zip()方法t221
O18.6.4 reduce()方法t222
O18.6.5 fold()方法t223
O18.6.6 filter()方法t223
O18.6.7 forEach()方法t224
O18.6.8 partition()方法t224
18.7 实例26:用函数式方法完成数据分析t225
18.8 本章小结t226
=
9章 注解与反射t227
19.1 注解――为代码添加标记t227
O19.1.1 使用注解t227
O19.1.2 了解注解参数t228
O19.1.3 注解目标t231
O19.1.4 了解元注解t232
19.2 反射――在程序运行时获得代码元数据t234
O19.2.1 添加依赖t234
O19.2.2 使用反射t234
19.3 实例27:通过反射和注解完成对象的序列化t240
19.4 本章小结t246
=
第20章 异常t247
20.1 了解异常t247
20.2 异常的处理t247
O20.2.1 捕获和处理异常t247
O20.2.2 了解finally代码块和返回值t249
O20.2.3 处理try表达式中的异常t250
O20.2.4 抛出异常t251
20.3 异常对象t253
O20.3.1 了解异常对象t253
O20.3.2 自定义异常类t253
O20.4 实例28:处理回调中的异常t254
20.5 本章小结t257
=
第21章 I/O操作t258
21.1 文件操作t258
O21.1.1 创建一个文件t258
O21.1.2 删除一个文件t259
O21.1.3 创建一个目录t259
O21.1.4 删除一个目录t259
21.2 流操作t259
O21.2.1 流的分类t259
O21.2.2 写文件t260
O21.2.3 读取文件t261
21.3 实例29:读取并解析CSV文件t262
21.4 本章小结t265
=
第22章 DSLt266
22.1 DSL的基础知识t266
O22.1.1 了解领域特定语言t266
O22.1.2 了解DSL的常见使用场景t266
O22.1.3 了解DSL的分类t267
22.2 使用DSLt267
O22.2.1 实例30:用Lambda表达式实现DSLt267
O22.2.2 实例31:用链式调用实现DSLt269
22.3 内置DSLt270
22.4 本章小结t271
=
第23章 异步编程t272
23.1 线程与进程t272
23.2 线程的使用t272
23.3 了解协程t274
23.4 协程的使用t274
O23.4.1 配置依赖t274
O23.4.2 协程构建器――创建协程t275
O23.4.3 Job类――控制协程t277
O23.4.4 协程状态和协程取消t278
23.5 挂起函数t284
23.6 async函数与await()方法t285
O23.6.1 async()函数t285
O23.6.2 await()方法t287
23.7 协程上下文与协程调度器t287
O23.7.1 上下文与调度器t287
O23.7.2 使用协程调度器t289
23.8 协程作用域t290
O23.8.1 协程的父子关系t290
O23.8.2 协程中的异常t291
23.9 调试协程t292
23.10 本章小结t293
=
第24章 与Java之间的调用t295
24.1 用Kotlin调用Java程序t295
O24.1.1 标识符t295
O24.1.2 类型映射t296
O24.1.3 可空类型与平台类型t298
O24.1.4 Setter与Getter方法t299
O24.1.5 Object类t300
O24.1.6 静态成员t301
O24.1.7 SAM类型t302
O24.1.8 泛型t303
O24.1.9 检查异常t303
O24.1.10 JNIt304
24.2 用Java调用Kotlin程序t304
O24.2.1 属性t304
O24.2.2 可空类型t305
O24.2.3 实例字段t305
O24.2.4 类字段t306
O24.2.5 静态方法t307
O24.2.6 访问控制符t308
O24.2.7 KClasst308
O24.2.8 方法重载t308
O24.2.9 顶层成员t309
O24.2.10 @JvmName注解t310
O24.2.11 型变t312
O24.2.12 检查异常t312
24.3 本章小结t313
=
第5篇 项目实战
=
第25章 用Kotlin编写“图书管理系统”的后端应用t316
25.1 建立Spring Boot工程t316
25.2 实现Persistence层t319
25.3 实现Resource层t326
25.4 实现Service层t330
25.5 允许跨域访问t333
25.6 运行代码t333
-
第26章 用Kotlin编写“图书管理系统”的Android应用t335
26.1 建立Android工程t335
26.2 配置工程t338
26.3 编写Layout文件t341
26.4 编写业务模型t344
26.5 创建Sevicet345
26.6 创建UIt346
26.7 运行工程t350
-
第27章 用Kotlin编写“图书管理系统”的前端应用t351
27.1 建立前端工程t351
27.2 解析工程t352
27.3 调用JavaScript的基础知识t354
27.4 React的基础知识t355
......
评论晒单