Kotlin 从小白到大牛 - 关东升 PDF 文档
本书是一本 Kotlin 语言学习立体教程,读者群是零基础小白,通过本书的学习读者能够成为 Kotlin 大牛。主要内容包括:Kotlin 语法基础、Kotlin 编码规范、数据类型、字符串、运算符、程序流程控制、函数、面向对象基础、继承与多态、抽象类与接口、高阶函数、Lambda 表达式、数组、集合、函数式编程 API、异常处理、线程、协程、Kotlin 与 Java 混合编程、Kotlin I/O 与文件管理、网络编程、图形用户界面编程、SQL 框架、反射和注解等技术。最后是项目实战,这个部分系统地讲解了两个项目:PetStore 宠物商店和 Kotlin 版 QQ2006 聊天工具开发过程。
内容简介
本书学习路线图
内容说明
前言
本书服务网址
源代码
我们的联系方式
第 1 章 开篇综述
1.1 Kotlin 语言简介
1.1.1 Kotlin 语言历史
1.1.2 Kotlin 语言设计目标
1.2 Kotlin 语言特点
1.3 Kotlin 与 Java 虚拟机
1.3.1 Java 虚拟机
1.3.2 Kotlin 应用程序运行过程
1.4 如何获得帮助
第 2 章 开发环境搭建
2.1 JDK 工具包
2.1.1 JDK 下载和安装
2.1.2 设置环境变量
2.2 IntelliJ IDEA 开发工具
2.3 Eclipse 开发工具
2.3.1 Eclipse 下载和安装
2.3.2 安装 Kotlin 插件
2.4 Kotlin 编译器
2.4.1 下载 Kotlin 编译器
2.4.2 设置 Kotlin 编译器环境变量
2.5 文本编辑工具
2.5.1 在 Sublime Text 中安装 Kotlin 语言包
2.5.2 Sublime Text 与 Kotlin 编译器集成
本章小结
第 3 章 第一个 Kotlin 程序
3.1 使用 REPL
3.2 使用 IntelliJ IDEA 实现
3.2.1 创建项目
3.2.2 创建 Kotlin 源代码文件
3.2.3 编写代码
3.2.4 运行程序
3.3 使用 IntelliJ IDEA+Gradle 实现
3.4 使用 Eclipse+Kotlin 插件实现
3.4.1 创建项目
3.4.2 创建 Kotlin 源代码文件
3.4.3 运行程序
3.5 文本编辑工具+Kotlin 编译器实现
3.5.1 编写代码
3.5.2 编译程序
3.5.3 运行程序
3.6 代码解释
本章小结
第 4 章 Kotlin 语法基础
4.1 标识符和关键字
4.1.1 标识符
4.1.2 关键字
4.2 常量和变量
4.2.1 变量
4.2.2 常量和只读变量
4.2.3 使用 var 还是 val?
4.3 注释
4.4 语句与表达式
4.4.1 语句
4.4.2 表达式
4.5 包
4.5.1 包作用
4.5.2 包定义
4.5.3 包引入
本章小结
第 5 章 Kotlin 编码规范
5.1 命名规范
5.2 注释规范
5.2.1 文件注释
5.2.2 文档注释
5.2.3 代码注释
5.2.4 使用地标注释
5.3 声明
5.3.1 变量或常量声明
5.3.2 类声明
5.4 代码排版
5.4.1 空行
5.4.2 空格
5.4.3 缩进
5.4.4 断行
5.5 省略规范
本章小结
第 6 章 数据类型
6.1 回顾 Java 数据类型
6.2 Kotlin 基本数据类型
6.2.1 整型类型
6.2.2 浮点类型
6.2.3 字符类型
6.2.4 布尔类型
6.3 数值类型之间的转换
6.3.1 赋值与显式转换
6.3.2 数学计算与隐式转换
6.4 可空类型
6.4.1 可空类型概念
6.4.2 使用安全调用运算符(?.)
6.4.3 非空断言运算符(!!)
6.4.4 使用 Elvis 运算符(?:)
本章小结
第 7 章 字符串
7.1 字符串字面量
7.1.1 普通字符串
7.1.2 原始字符串
7.2 不可变符串
7.2.1 String
7.2.2 字符串拼接
7.2.3 字符串模板
7.2.4 字符串查找
7.2.5 字符串比较
7.2.6 字符串截取
7.3 可变字符串
7.3.1 StringBuilder
7.3.2 字符串追加、插入、删除和替换
7.4 正则表达式
7.4.1 Regex 类
7.4.2 字符串匹配
7.4.3 字符串查找
7.4.4 字符串替换
7.4.5 字符串分割
本章小结
第 8 章 运算符
8.1 算术运算符
8.1.1 一元运算符
8.1.2 二元运算符
8.1.3 算术赋值运算符
8.2 关系运算符
8.3 逻辑运算符
8.4 位运算符
8.5 其他运算符
8.6 运算符优先级
本章小结
第 9 章 程序流程控制
9.1 if 分支结构
9.1.1 if 结构当做语句使用
9.1.2 if 表达式
9.2 when 多分支结构
9.2.1 when 结构当做语句使用
9.2.2 when 表达式
9.3 循环结构
9.3.1 while 语句
9.3.2 do-while 语句
9.3.3 for 语句
9.4 跳转语句
9.4.1 break 语句
9.4.2 continue 语句
9.5 使用区间
9.5.1 表示区间
9.5.2 使用 in 和!in 关键字
本章小结
第 10 章 函数
10.1 函数声明
10.2 返回特殊数据
10.2.1 无返回数据与 Unit 类型
10.2.2 永远不会正常返回数据与 Nothing 类型
10.3 函数参数
10.3.1 使用命名参数调用函数
10.3.2 参数默认值
10.3.3 可变参数
10.4 表达式函数体
10.5 局部函数
10.6 匿名函数
本章小结
第 11 章 面向对象编程
11.1 面向对象概述
11.2 面向对象三个基本特性
11.2.1 封装性
11.2.2 继承性
11.2.3 多态性
11.3 类声明
11.4 属性
11.4.1 回顾 JavaBean
11.4.2 声明属性
11.4.3 延迟初始化属性
11.4.4 委托属性
11.4.5 惰性加载属性
11.4.6 可观察属性
11.5 扩展
11.5.1 扩展函数
11.5.2 扩展属性
11.5.3 “成员优先”原则
11.5.4 定义中缀运算符
11.6 构造函数
11.6.1 主构造函数
11.6.2 次构造函数
11.6.3 默认构造函数
11.7 封装性与可见性修饰符
11.7.1 可见性范围
11.7.2 公有可见性
11.7.3 内部可见性
11.7.4 保护可见性
11.7.5 私有可见性
11.8 数据类
11.8.1 声明数据类
11.8.2 使用 copy 函数
11.8.3 解构数据类
11.9 枚举类
11.9.1 声明枚举类
11.9.2 枚举类构造函数
11.9.3 枚举常用属性和函数
11.10 嵌套类
11.10.1 嵌套类
11.10.2 内部类
11.11 强大的 object 关键字
11.11.1 对象表达式
11.11.2 对象声明
11.11.3 伴生对象
本章小结
第 12 章 继承与多态
12.1 Kotlin 中的继承
12.2 调用父类构造函数
12.2.1 使用主构造函数
12.2.2 使用次构造函数重载
12.2.3 使用参数默认值调用构造函数
12.3 重写成员属性和函数
12.3.1 重写成员属性
12.3.2 重写成员函数
12.4 多态
12.4.1 多态概念
12.4.2 使用 is 和!is 进行类型检查
12.4.3 使用 as 和 as?进行类型转换
12.5 密封类
本章小结
第 13 章 抽象类与接口
13.1 抽象类
13.1.1 抽象类概念
13.1.2 抽象类声明和实现
13.2 使用接口
13.2.1 接口概念
13.2.2 接口声明和实现
13.2.3 接口与多继承
13.2.4 接口继承
13.2.5 接口中具体函数和属性
本章小结
第 14 章 函数式编程基石——高阶函数和 Lambda 表达式
14.1 函数式编程简介
14.2 高阶函数
14.2.1 函数类型
14.2.2 函数字面量
14.2.3 函数作为另一个函数返回值使用
14.2.4 函数作为参数使用
14.3 Lambda 表达式
14.3.1 Lambda 表达式标准语法格式
14.3.2 使用 Lambda 表达式
14.3.3 Lambda 表达式简化写法
14.3.4 Lambda 表达式与 return 语句
14.4 闭包与捕获变量
14.5 内联函数
14.5.1 自定义内联函数
14.5.2 使用 let 函数
14.5.3 使用 with 和 apply 函数
本章小结
第 15 章 泛型
15.1 泛型函数
15.1.1 声明泛型函数
15.1.2 多类型参数
15.1.3 泛型约束
15.1.4 可空类型参数
15.2 泛型属性
15.3 泛型类
15.4 泛型接口
本章小结
第 16 章 数据容器——数组和集合
16.1 数组
16.1.1 对象数组
16.1.2 基本数据类型数组
16.2 集合概述
16.3 Set 集合
16.3.1 不可变 Set 集合
16.3.2 可变 Set 集合
16.4 List 集合
16.4.1 不可变 List 集合
16.4.2 可变 List 集合
16.5 Map 集合
16.5.1 不可变 Map 集合
16.5.2 可变 Map 集合
本章小结
第 17 章 Kotlin 中函数式编程 API
17.1 函数式编程 API 与链式调用
17.2 遍历操作
17.2.1 forEach
17.2.2 forEachIndexed
17.3 三大基础函数
17.3.1 filter
17.3.2 map
17.3.3 reduce
17.4 聚合函数
17.5 过滤函数
17.6 映射函数
17.7 排序函数
17.8 案例:求阶乘
17.9 案例:计算水仙花数
本章小结
第 18 章 异常处理
18.1 从一个问题开始
18.2 异常类继承层次
18.2.1 Throwable 类
18.2.2 Error 和 Exception
18.3 捕获异常
18.3.1 try-catch 语句
18.3.2 try-catch 表达式
18.3.3 多 catch 代码块
18.3.4 try-catch 语句嵌套
18.4 释放资源
18.4.1 finally 代码块
18.4.2 自动资源管理
18.5 throw 与显式抛出异常
本章小结
第 19 章 线程
19.1 基础知识
19.1.1 进程
19.1.2 线程
19.1.3 主线程
19.2 创建线程
19.3 线程状态
19.4 线程管理
19.4.1 等待线程结束
19.4.2 线程让步
19.4.3 线程停止
本章小结
第 20 章 协程
20.1 协程介绍
20.2 创建协程
20.2.1 Kotlin 协程 API
20.2.2 创建支持 kotlinx.coroutines 项目
20.2.3 第一个协程程序
20.2.4 launch 函数与 Job 对象
20.2.5 使用 runBlocking 函数
20.2.6 挂起函数
20.3 协程生命周期
20.4 管理协程
20.4.1 等待协程结束
20.4.2 超时设置
20.4.3 取消协程
本章小结
第 21 章 Kotlin 与 Java 混合编程
21.1 数据类型映射
21.1.1 Java 基本数据类型与 Kotlin 数据类型映射
21.1.2 Java 包装类与 Kotlin 数据类型映射
21.1.3 Java 常用类与 Kotlin 数据类型映射
21.1.4 Java 集合类型与 Kotlin 数据类型映射
21.1 Kotlin 调用 Java
21.2.1 避免 Kotlin 关键字
21.2.2 平台类型与空值
21.2.3 异常检查
21.2.4 调用 Java 函数式接口
21.3 Java 调用 Kotlin
21.3.1 访问 Kotlin 属性
21.3.2 访问包级别成员
21.3.3 实例字段、静态字段和静态函数
21.3.4 可见性
21.3.5 生成重载函数
21.3.6 异常检查
本章小结
第 22 章 Kotlin I/O 与文件管理
22.1 Java I/O 流概述
22.1.1 Java 流设计理念
22.1.2 Java 流类继承层次
22.2 字节流
22.2.1 InputStream 抽象类
22.2.2 OutputStream 抽象类
22.2.3 案例:文件复制
22.3 字符流
22.3.1 Reader 抽象类
22.3.2 Writer 抽象类
22.3.3 案例:文件复制
22.4 文件管理
22.4.1 File 类扩展函数
22.4.2 案例:读取目录文件
本章小结
第 23 章 网络编程
23.1 网络基础
23.1.1 网络结构
23.1.2 TCP/IP 协议
23.1.3 IP 地址
23.1.4 端口
23.2 TCP Socket 低层次网络编程
23.2.1 TCP Socket 通信概述
23.2.2 TCP Socket 通信过程
23.2.3 Socket 类
23.2.4 ServerSocket 类
23.2.5 案例:文件上传工具
23.3 UDP Socket 低层次网络编程
23.3.1 DatagramSocket 类
23.3.2 DatagramPacket 类
23.3.3 案例:文件上传工具
23.4 数据交换格式
23.4.1 JSON 文档结构
23.4.2 使用第三方 JSON 库
23.4.3 JSON 数据编码和解码
23.5 访问互联网资源
23.5.1 URL 概念
23.5.2 HTTP/HTTPS 协议
23.5.3 使用 URL 类
23.5.4 使用 HttpURLConnection 发送 GET 请求
23.5.5 使用 HttpURLConnection 发送 POST 请求
23.5.6 实例:Downloader
本章小结
第 24 章 Kotlin 与 Java Swing 图形用户界面编程
24.1 Java 图形用户界面技术
24.2 Swing 技术基础
24.2.1 Swing 类层次结构
24.2.2 Swing 程序结构
24.3 事件处理模型
24.3.1 内部类和对象表达式处理事件
24.3.2 Lambda 表达式处理事件
24.3.3 使用适配器
24.4 布局管理
24.4.1 FlowLayout 布局
24.4.2 BorderLayout 布局
24.4.3 GridLayout 布局
24.4.4 不使用布局管理器
24.5 Swing 组件
24.5.1 标签和按钮
24.5.2 文本输入组件
24.5.3 复选框和单选按钮
24.5.4 下拉列表
24.5.5 列表
24.5.6 分隔面板
24.5.7 使用表格
24.6 案例:图书库存
本章小结
第 25 章 轻量级 SQL 框架——Exposed
25.1 MySQL 数据库管理系统
25.1.1 数据库安装与配置
25.1.2 连接 MySQL 服务器
25.1.3 常见的管理命令
25.2 Kotlin 与 DSL 语言
25.3 使用 Exposed 框架
25.3.1 配置项目
25.3.2 面向 DSL API
25.3.3 面向对象 API
25.4 案例:多表连接查询操作
25.4.1 创建数据库
25.4.2 配置 SQL 日志
25.4.3 实现查询
本章小结
第 26 章 反射
26.1 Kotlin 反射 API
26.2 引用类
26.3 调用函数
26.4 调用构造函数
26.5 调用属性
本章小结
第 27 章 注解
27.1 元注解
27.2 自定义注解
27.2.1 声明注解
27.2.2 案例:使用元注解
27.2.3 注解目标声明
27.2.4 案例:读取运行时注解信息
本章小结
第 28 章 项目实战 1:开发 PetStore 宠物商店项目
28.1 系统分析与设计
28.1.1 项目概述
28.1.2 需求分析
28.1.3 原型设计
28.1.4 数据库设计
28.1.5 架构设计
28.1.6 系统设计
28.2 任务 1:创建数据库
28.2.1 迭代 1.1:安装和配置 MySQL 数据库
28.2.2 迭代 1.2:编写数据库 DDL 脚本
28.2.3 迭代 1.3:插入初始数据到数据库
28.3 任务 2:初始化项目
28.3.1 迭代 2.1:配置项目
28.3.2 迭代 2.2:添加资源图片
28.3.3 迭代 2.3:添加包
28.4 任务 3:编写数据持久层代码
28.4.1 迭代 3.1:编写实体类
28.4.2 迭代 3.2:创建数据表类
28.4.3 迭代 3.3:编写 DAO 类
28.5 任务 4:编写表示层代码
28.5.1 迭代 4.1:编写启动类
28.5.2 迭代 4.2:编写自定义窗口类——MyFrame
28.5.3 迭代 4.3:用户登录窗口
28.5.4 迭代 4.4:商品列表窗口
28.5.5 迭代 4.5:商品购物车窗口
28.6 任务 5:应用程序打包发布
28.6.1 迭代 5.1:处理 TODO 和 FIXME 任务
28.6.2 迭代 5.2:打包
第 29 章 项目实战 2:开发 Kotlin 版 QQ2006 聊天工具
29.1 系统分析与设计
29.1.1 项目概述
29.1.2 需求分析
29.1.3 原型设计
29.1.4 数据库设计
29.1.5 网络拓扑图
29.1.6 系统设计
29.2 任务 1:创建服务器端数据库
29.2.1 迭代 1.1:安装和配置 MySQL 数据库
29.2.2 迭代 1.2:编写数据库 DDL 脚本
29.2.3 迭代 1.3:插入初始数据到数据库
29.3 任务 2:初始化项目
29.3.1 任务 2.1:配置项目
29.3.2 任务 2.2:添加资源图片
29.3.3 任务 2.3:添加包
29.4 任务 3:编写服务器端外围代码
29.4.1 迭代 3.1:创建数据表类
29.4.2 任务 3.2:编写 UserDAO 类
29.4.3 任务 3.3:编写 ClientInfo 类
29.5 任务 4:客户端 UI 实现
29.5.1 迭代 4.1:登录窗口实现
29.5.2 迭代 4.2:好友列表窗口实现
29.5.3 迭代 4.3:聊天窗口实现
29.6 任务 5:用户登录过程实现
29.6.1 迭代 5.1:客户端启动
29.6.2 迭代 5.2:客户端登录编程
29.6.3 迭代 5.3:服务器启动
29.6.4 迭代 5.4:服务器验证编程
29.7 任务 6:刷新好友列表
29.7.1 迭代 6.1:刷新好友列表服务器端编程
29.7.2 迭代 6.2:刷新好友列表客户端编程
29.8 任务 7:聊天过程实现
29.8.1 迭代 7.1:客户端用户 1 向用户 3 发送消息
29.8.2 迭代 7.2:服务器接收用户 1 消息与转发给用户 3 消息
29.8.3 迭代 7.3:客户端用户 3 接收用户 1 消息
29.9 任务 8:用户下线
29.9.1 迭代 8.1:客户端编程
下载地址:https://www.wenjiangs.com/wp-content/uploads/2023/10/UlI6FUxweYamVFCY.zip
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论