内容简介
第1章 Kotlin开发环境搭建
1.1 Kotlin概述
1.1.1 Kotlin是什么
1.1.2 为什么Kotlin突然成为热门
1.1.3 Kotlin相对于Java有哪些优势
1.1.4 Kotlin能做什么
1.2 在线运行Kotlin代码
1.3 安装和配置Kotlin
1.3.1 安装和配置JDK
1.3.2 Windows下安装和配置Kotlin
1.3.3 Mac OS X下安装和配置Kotlin
1.4 测试Kotlin编译和运行环境
1.4.1 命令行方式使用Kotlin
1.4.2 Kotlin的REPL环境
1.4.3 在命令行中运行脚本文件
1.4.4 在浏览器中运行Kotlin程序
1.4.5 使用Node.js运行Kotlin程序
1.4.6 在微信小程序中运行Kotlin程序
1.4.7 用Kotlin开启全栈开发模式
1.5 Kotlin中的语法糖
1.6 Kotlin的集成开发环境(IDE)
1.6.1 IntelliJ IDEA的Kotlin基础开发环境
1.6.2 使用Android Studio和Kotlin开发Android App
1.7 小结
第2章 Kotlin基础知识
2.1 Kotlin的基本语法
2.1.1 定义变量
2.1.2 定义函数
2.1.3 注释
2.2 基础数据类型
2.2.1 数值类型
2.2.2 字符类型
2.2.3 布尔类型
2.2.4 数组
2.2.5 字符串
2.2.6 字符串模板
2.3 包(Package)
2.4 控制流
2.4.1 条件语句
2.4.2 when语句
2.4.3 for循环
2.4.4 while循环
2.5 小结
第3章 类和接口
3.1 类的声明
3.2 构造器
3.2.1 主构造器
3.2.2 第二构造器
3.2.3 Kotlin中的Singleton模式
3.2.4 Kotlin函数中的默认参数
3.2.5 创建类的实例
3.3 类成员
3.3.1 属性的基本用法
3.3.2 属性的getter和setter形式
3.3.3 保存属性值的字段
3.3.4 函数
3.3.5 嵌套类
3.4 修饰符(Modifiers)
3.5 类的继承
3.5.1 Kotlin类如何继承
3.5.2 重写方法
3.5.3 重写属性
3.6 接口
3.7 抽象类
3.8 小结
第4章 枚举类和扩展
4.1 枚举类
4.1.1 枚举类的基本用法
4.1.2 为枚举值指定对应的数值
4.1.3 枚举类的其他功能
4.2 扩展
4.2.1 扩展原生API
4.2.2 扩展自定义类
4.2.3 成员函数冲突的解决方案
4.2.4 扩展属性
4.2.5 扩展伴随对象(Companion Object)
4.2.6 扩展的范围
4.2.7 在类中使用扩展
4.2.8 调用特定类的成员函数
4.2.9 扩展成员的继承
4.3 小结
第5章 数据类和封闭类
5.1 数据类(Data Class)
5.1.1 使用数据类
5.1.2 对象复制
5.1.3 数据类成员的解构
5.2 封闭类(Sealed Classes)
5.3 小结
第6章 泛型
6.1 泛型基础
6.2 类型变异
6.3 类型投射
6.4 星号投射
6.5 泛型函数
6.6 泛型约束
6.7 小结
第7章 对象和委托
7.1 对象
7.1.1 对象表达式
7.1.2 声明匿名对象
7.1.3 访问封闭作用域内的变量
7.1.4 陪伴对象
7.2 委托
7.2.1 类的委托
7.2.2 委托属性
7.2.3 委托类的初始化函数
7.2.4 委托的前提条件
7.3 标准委托
7.3.1 惰性装载
7.3.2 可观察属性
7.3.3 阻止属性的赋值操作
7.3.4 Map委托
7.3.5 MutableMap委托
7.4 小结
第8章 高阶函数与Lambda表达式
8.1 高阶函数
8.2 Lambda表达式与匿名函数
8.2.1 函数类型
8.2.2 Lambda表达式的语法
8.2.3 匿名函数
8.2.4 闭包(Closure)
8.3 小结
第9章 函数
9.1 函数基本用法
9.2 使用中缀标记法调用函数
9.3 单表达式函数
9.4 函数参数和返回值
9.4.1 可变参数
9.4.2 返回值类型
9.5 函数的范围
9.5.1 局部函数
9.5.2 成员函数
9.6 泛型函数
9.7 内联函数
9.7.1 让Lambda表达式内联进函数
9.7.2 内联部分Lambda表达式
9.7.3 非局部返回(Non-local return)
9.7.4 实体化的类型参数(Reified type parameter)
9.7.5 内联属性
9.8 小结
第10章 其他Kotlin技术(1)
10.1 数据解构
10.2 集合
10.3 值范围
10.3.1 值范围的应用
10.3.2 值范围的工作原理
10.3.3 常用工具函数
10.4 类型检查与类型转换
10.4.1 is与!is操作符
10.4.2 智能类型转换
10.4.3 强行类型转换
10.5 this表达式
10.6 相等判断
10.7 操作符重载
10.7.1 一元操作符重载
10.7.2 二元操作符
10.7.3 方括号操作符重载
10.7.4 赋值操作符重载
10.7.5 逻辑操作符重载
10.8 小结
第11章 其他Kotlin技术(2)
11.1 null值安全性
11.1.1 可为null的类型与不可为null的类型
11.1.2 在条件语句中进行null检查
11.1.3 安全调用操作符
11.1.4 Elvis操作符
11.1.5 !!操作符
11.1.6 安全的类型转换
11.1.7 可为null的类型构成的集合
11.2 异常类
11.3 注解(Annotations)
11.3.1 使用注解
11.3.2 注解类的构造器
11.3.3 Lambda表达式
11.4 反射(Reflection)
11.4.1 类引用(Class Reference)
11.4.2 枚举类成员
11.4.3 动态调用成员函数
11.4.4 动态调用成员属性
11.5 小结
第12章 Android的窗口——Activity
12.1 什么是Activity
12.2 Activity的基本用法
12.2.1 创建一个不包含任何Activity的Android工程
12.2.2 手动创建Activity
12.2.3 创建和加载布局
12.2.4 在AndroidManifest文件中注册Activity
12.2.5 编译和运行Android工程
12.2.6 为Activity添加新组件
12.2.7 为Activity添加逻辑代码
12.2.8 为Activity添加Toast
12.2.9 关闭Activity
12.3 使用Intent连接多个Activity
12.3.1 使用显式Intent
12.3.2 使用隐式Intent
12.3.3 为隐式Intent设置更多的过滤条件
12.3.4 使用隐式Intent访问系统App
12.4 向Activity中传递数据
12.5 从Activity返回数据
12.6 Activity的生命周期
12.7 记录当前活动的Activity
12.8 小结
第13章 Android App的装饰工具——UI组件与布局
13.1 如何编写程序界面
13.2 常用的UI组件
13.2.1 文本显示组件(TextView)
13.2.2 按钮组件(Button)
13.2.3 文本编辑组件(EditText)
13.2.4 图像组件(ImageView)
13.2.5 进度条组件(ProgressBar)
13.2.6 对话框组件(AlertDialog)
13.3 布局详解
13.3.1 线性布局(LinearLayout)
13.3.2 相对布局(RelativeLayout)
13.3.3 帧布局(FrameLayout)
13.3.4 百分比布局(PercentFrameLayout)
13.4 小结
第14章 永久保存数据的方式——持久化技术
14.1 SharedPreferences存储
14.1.1 将数据存储到SharedPreferences中
14.1.2 从SharedPreferences读取数据
14.1.3 利用SharedPreferences存取用户名和密码
14.2 文件流操作
14.2.1 openFileOutput和openFileInput方法
14.2.2 读写SD卡上的文件
14.3 App权限的授予和拒绝
14.4 读写JSON格式的数据
14.5 SQLite数据库
14.5.1 SQLite数据库管理工具
14.5.2 创建SQLite数据库和数据表
14.5.3 向SQLite数据表中插入数据
14.5.4 删除SQLite数据表中的数据
14.5.5 更新SQLite数据表中的数据
14.5.6 查询SQLite表中的数据
14.5.7 将数据库与App一起发布
14.6 小结
第15章 连接外部世界——网络技术
15.1 WebView组件
15.2 使用HTTP与服务端进行交互
15.2.1 使用HttpURLConnection
15.2.2 使用okHttp
15.3 小结
第16章 项目实战——欧瑞天气App
16.1 项目概述
16.2 添加依赖
16.3 实现主窗口
16.4 显示地区列表
16.4.1 描述城市信息的数据类
16.4.2 处理JSON格式的城市列表信息
16.4.3 天气信息描述类
16.4.4 获取城市信息的对象
16.4.5 在ListView组件中显示地区列表
16.5 显示天气信息
16.6 小结