内 容 提 要 本书分3部分讲解Kotlin,第1部分(第1~11章)是Kotlin语言的基础部分,主要介绍了Kotlin的基础知识、语法以及大量的“语法糖”,如搭建Kotlin开发环境、数据类型、控制流、类、对象、接口、扩展、委托、Lambda表达式、操作符重载等。第2部分(第12~15章)主要介绍了如何用Kotlin开发Android App。由于Kotlin可以调用JDK中的API,所以在使用Kotlin开发Android App的过程中,很多都是调用JDK的API实现的,但开发语言使用的是Kotlin。因此,这一部分详细介绍了用Kotlin开发Android App 需要掌握的核心知识,如Activity、组件、布局、流文件、SQLite数据库、网络等技术。第3部分(第16章)是一个完整的案例:欧瑞天气。通过这个项目,可以让读者了解利用Kotlin开发Android App的全过程。
书 视频学习 学习效果测试 开发闯关测试 项目实战,贴心跟踪读者学习效果,学习Kotlin这一本就够! 基于新的Kotlin版本 一本全程视频陪伴,贴心跟踪初学者学习效果的Kotlin开发书 赠送近70小时视频课程,包括Kotlin和Android开发,供读者学习使用 通过Kotlin开发题库提供大量的测试题以及过关系统,读者可以用通关的方式更有效地学习书中的知识,提高学习的效率 随时互动答疑,有问题的学员可以通过欧瑞科技的问答社区(https://geekori.com)提问,会有专人回答读者提出的问题,以及通过博客系统总结书中学到的知识,同时,提出问题、回答问题以及撰写的博客越多,就会增加读者的积分,以后学宁老师其他的课程和获取其他资源,会有更大的优惠。
李宁,欧瑞科技创始人,极客起源IT问答社区(https://geekori.com)创始人,欧瑞学院金-牌讲师,计算机专业硕士。拥有近20年软件开发经验,10年企业内训经验。曾任国内某大型软件公司项目经理。CSDN博客专家、CSDN学院签约讲师、51CTO学院特级讲师。长久以来一直从事JavaScript、Node.js、Java、Kotlin、Python、Android、iOS、C 、Hadoop、Spark、深度学习的开发和技术指导工作。对国内外相关领域的技术、理论和实践有很深的理解和研究。目前已经出版超过30本IT畅销书,主要著作包括《Kotlin程序开发入门精要》《Android深度探索 卷1和卷2》《Android开发指南 第1版和第2版》等。
目录
第1章 Kotlin开发环境搭建 1
1.1 Kotlin概述 1
1.1.1 Kotlin是什么 1
1.1.2 为什么Kotlin突然成为热门 2
1.1.3 Kotlin相对于Java有哪些优势 2
1.1.4 Kotlin能做什么 3
1.2 在线运行Kotlin代码 3
1.3 安装和配置Kotlin 6
1.3.1 安装和配置JDK 6
1.3.2 Windows下安装和
配置Kotlin 9
1.3.3 Mac OS X下安装和
配置Kotlin 10
1.4 测试Kotlin编译和运行环境 10
1.4.1 命令行方式使用Kotlin 11
1.4.2 Kotlin的REPL环境 13
1.4.3 在命令行中运行脚本文件 14
1.4.4 在浏览器中运行Kotlin程序 14
1.4.5 使用Node.js运行Kotlin程序 16
1.4.6 在微信小程序中运行Kotlin
程序 17
1.4.7 用Kotlin开启全栈开发模式 21
1.5 Kotlin中的语法糖 22
1.6 Kotlin的集成开发环境(IDE) 24
1.6.1 IntelliJ IDEA 的Kotlin基础开发
环境 25
1.6.2 使用Android Studio和Kotlin开发
Android App 29
1.7 小结 34
第2章 Kotlin基础知识 35
2.1 Kotlin的基本语法 35
2.1.1 定义变量 35
2.1.2 定义函数 36
2.1.3 注释 37
2.2 基础数据类型 37
2.2.1 数值类型 38
2.2.2 字符类型 39
2.2.3 布尔类型 41
2.2.4 数组 41
2.2.5 字符串 42
2.2.6 字符串模板 43
2.3 包(Package) 43
2.4 控制流 46
2.4.1 条件语句 46
2.4.2 when语句 46
2.4.3 for循环 48
2.4.4 while循环 49
2.5 小结 50
第3章 类和接口 51
3.1 类的声明 51
3.2构造器 51
3.2.1 主构造器 51
3.2.2 第二构造器 53
3.2.3 Kotlin中的Singleton模式 54
3.2.4 Kotlin函数中的默认参数 55
3.2.5 创建类的实例 58
3.3 类成员 58
3.3.1 属性的基本用法 58
3.3.2 属性的getter和setter形式 60
3.3.3 保存属性值的字段 60
3.3.4 函数 61
3.3.5 嵌套类 63
3.4 修饰符(Modifiers) 64
3.5 类的继承 65
3.5.1 Kotlin类如何继承 65
3.5.2 重写方法 65
3.5.3 重写属性 66
3.6 接口 67
3.7 抽象类 68
3.8 小结 68
第4章 枚举类和扩展 69
4.1枚举类 69
4.1.1 枚举类的基本用法 69
4.1.2 为枚举值指定对应的数值 70
4.1.3 枚举类的其他功能 71
4.2 扩展 72
4.2.1 扩展原生API 72
4.2.2 扩展自定义类 73
4.2.3 成员函数冲突的解决方案 75
4.2.4 扩展属性 76
4.2.5 扩展伴随对象
(Companion Object) 76
4.2.6 扩展的范围 77
4.2.7 在类中使用扩展 77
4.2.8 调用特定类的成员函数 78
4.2.9 扩展成员的继承 79
4.3 小结 80
第5章 数据类和封闭类 81
5.1数据类(Data Class) 81
5.1.1 使用数据类 81
5.1.2 对象复制 84
5.1.3 数据类成员的解构 85
5.2封闭类(Sealed Classes) 86
5.3小结 86
第6章 泛型 87
6.1 泛型基础 87
6.2类型变异 88
6.3类型投射 90
6.4 星号投射 92
6.5 泛型函数 92
6.6 泛型约束 93
6.7 小结 93
第7章 对象和委托 94
7.1 对象 94
7.1.1 对象表达式 94
7.1.2 声明匿名对象 97
7.1.3 访问封闭作用域内的变量 97
7.1.4 陪伴对象 99
7.2 委托 99
7.2.1 类的委托 99
7.2.2 委托属性 100
7.2.3 委托类的初始化函数 102
7.2.4 委托的前提条件 104
7.3 标准委托 104
7.3.1惰性装载 105
7.3.2 可观察属性 105
7.3.3 阻止属性的赋值操作 106
7.3.4 Map委托 107
7.3.5 MutableMap委托 108
7.4 小结 108
第8章 高阶函数与Lambda表达式 109
8.1 高阶函数 109
8.2 Lambda表达式与匿名函数 110
8.2.1 函数类型 111
8.2.2 Lambda表达式的语法 111
8.2.3 匿名函数 112
8.2.4闭包(Closure) 113
8.3 小结 113
第9章 函数 114
9.1 函数基本用法 114
9.2 使用中缀标记法调用函数 114
9.3 单表达式函数 115
9.4函数参数和返回值 116
9.4.1 可变参数 116
9.4.2返回值类型 117
9.5 函数的范围 117
9.5.1局部函数 117
9.5.2成员函数 118
9.6泛型函数 118
9.7内联函数 119
9.7.1 让Lambda表达式内联进
函数 119
9.7.2 内联部分Lambda表达式 121
9.7.3非局部返回
(Non-local return) 124
9.7.4 实体化的类型参数
(Reified type parameter) 125
9.7.5 内联属性 126
9.8 小结 127
第10章 其他Kotlin技术(1) 128
10.1数据解构 128
10.2集合 130
10.3值范围 132
10.3.1 值范围的应用 132
10.3.2 值范围的工作原理 134
10.3.3 常用工具函数 135
10.4 类型检查与类型转换 136
10.4.1 is与!is操作符 136
10.4.2 智能类型转换 138
10.4.3强行类型转换 139
10.5 this表达式 140
10.6 相等判断 140
10.7操作符重载 141
10.7.1 一元操作符重载 141
10.7.2 二元操作符 142
10.7.3 方括号操作符重载 144
10.7.4 赋值操作符重载 146
10.7.5 逻辑操作符重载 147
10.8 小结 149
第11章 其他Kotlin技术(2) 150
11.1 null值安全性 150
11.1.1 可为null的类型与不可为null
的类型 150
11.1.2 在条件语句中进行null检查 151
11.1.3 安全调用操作符 152
11.1.4 Elvis操作符 152
11.1.5 !!操作符 153
11.1.6 安全的类型转换 153
11.1.7 可为null的类型构成的集合 153
11.2 异常类 153
11.3 注解(Annotations) 155
11.3.1 使用注解 156
11.3.2 注解类的构造器 157
11.3.3 Lambda表达式 158
11.4 反射(Reflection) 158
11.4.1 类引用(Class Reference) 159
11.4.2 枚举类成员 159
11.4.3 动态调用成员函数 161
11.4.4 动态调用成员属性 161
11.5 小结 163
第12章 Android的窗口——Activity 164
12.1 什么是Activity 164
12.2 Activity的基本用法 164
12.2.1 创建一个不包含任何Activity
的Android工程 165
12.2.2 手动创建Activity 167
12.2.3 创建和加载布局 168
12.2.4 在AndroidManifest文件中注册
Activity 172
12.2.5 编译和运行Android工程 172
12.2.6 为Activity添加新组件 173
12.2.7为Activity添加逻辑代码 174
12.2.8 为Activity添加Toast 175
12.2.9 关闭Activity 178
12.3 使用Intent连接多个Activity 178
12.3.1使用显式Intent 179
12.3.2 使用隐式Intent 182
12.3.3为隐式Intent设置更多的过滤
条件 185
12.3.4 使用隐式Intent访问
系统App 187
12.4 向Activity中传递数据 189
12.5 从Activity返回数据 191
12.6 Activity的生命周期 192
12.7 记录当前活动的Activity 196
12.8 小结 197
第13章 Android App的装饰工具——
UI组件与布局 198
13.1如何编写程序界面 198
13.2 常用的UI组件 198
13.2.1 文本显示组件
(TextView) 198
13.2.2 按钮组件(Button) 202
13.2.3 文本编辑组件(EditText) 206
13.2.4 图像组件(ImageView) 210
13.2.5 进度条组件(ProgressBar) 213
13.2.6 对话框组件(AlertDialog) 216
13.3 布局详解 217
13.3.1 线性布局(LinearLayout) 217
13.3.2 相对布局(RelativeLayout) 222
13.3.3 帧布局(FrameLayout) 226
13.3.4 百分比布局
(PercentFrameLayout) 227
13.4 小结 230
第14章 长期保存数据的方式——
持久化技术 231
14.1 SharedPreferences存储 231
14.1.1将数据存储到SharedPreferences
中 231
14.1.2从SharedPreferences读取
数据 234
14.1.3利用SharedPreferences存取用户名
和密码 235
14.2 文件流操作 239
14.2.1 openFileOutput和openFileInput
方法 239
14.2.2 读写SD卡上的文件 242
14.3 App权限的授予和拒绝 248
14.4 读写JSON格式的数据 250
14.5 SQLite数据库 257
14.5.1 SQLite数据库管理
工具 257
14.5.2 创建SQLite数据库和
数据表 261
14.5.3 向SQLite数据表中插入
数据 264
14.5.4 删除SQLite数据表中的
数据 265
14.5.5 更新SQLite数据表中的
数据 266
14.5.6 查询SQLite表中的数据 267
14.5.7 将数据库与App一起
268
14.6 小结 270
第15章 连接外部世界——网络技术 271
15.1 WebView组件 271
15.2 使用HTTP与服务端进行交互 273
15.2.1 使用HttpURLConnection 273
15.2.2 使用OkHttp 276
15.3 小结 282
第16章 项目实战——欧瑞天气App 283
16.1 项目概述 283
16.2 添加依赖 284
16.3 实现主窗口 285
16.4 显示地区列表 286
16.4.1 描述城市信息的数据类 286
16.4.2 处理JSON格式的城市列表
信息 286
16.4.3 天气信息描述类 288
16.4.4 获取城市信息的对象 290
16.4.5 在ListView组件中显示地区
列表 293
16.5 显示天气信息 298
16.6 小结 303
很赞的一本书,里面有视频有题库,销售不错~~~
好好补充新知识