智捷社区

查看: 53|回复: 0

《Kotlin从小白到大牛》目录

[复制链接]

7

主题

60

帖子

205

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
205
发表于 2017-12-5 17:45:25 | 显示全部楼层 |阅读模式
第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 启动主协程
  20.2.6 挂起函数
20.3 协程生命周期
20.4 管理协程
  20.4.1 等待协程结束
  20.4.2 超时设置
  20.4.3 取消协程线程
本章小结

第21章 Kotlin与Java混合编程
21.1 数据类型映射
21.2 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:客户端编程
  29.9.2 迭代8.2:服务器端编程

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|智捷社区 ( 京ICP备09013343号-1

GMT+8, 2017-12-17 08:18 , Processed in 0.075135 second(s), 23 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表