书籍详情

Kotlin从小白到大牛

Kotlin从小白到大牛

作者:关东升

出版社:清华大学出版社

出版时间:2018-08-01

ISBN:9787302505310

定价:¥128.00

购买这本书可以去
内容简介
  本书是一部系统论述Kotlin编程语言、面向对象编程方法以及函数式编程思想的立体化教程(含纸质图书、电子书、教学课件、源代码与视频教程)。全书共分为5篇:第1篇Kotlin基础(第1章~第10章),第2篇面向对象(第11章~第13章),第3篇函数式编程(第14章~第17章),第4篇Kotlin进阶(第18章~第27章),第5篇项目实战(第28章~第29章)。主要内容包括:开篇综述;开发环境搭建;个Kotlin程序;Kotlin语法基础;Kotlin编码规范;数据类型;字符串;运算符;程序流程控制;函数;面向对象编程;继承与多态;抽象类与接口;函数式编程基石——高阶函数和Lambda表达式;泛型;数据容器——数组和集合;Kotlin中函数式编程API;异常处理;线程;协程;Kotlin与Java混合编程;Kotlin I/O与文件管理;网络编程;Kotlin与Java Swing图形用户界面编程;轻量级SQL框架——Exposed;反射;注解。最后给出了两个项目设计案例,项目实战1:开发PetStore宠物商店项目;项目实战2:开发Kotlin版QQ2006聊天工具。为便于读者快速掌握Kotlin编程方法,本书作者精心制作了电子书、完整的教学课件、完整的源代码与丰富的配套视频教程,并提供在线答疑服务。
作者简介
  关东升:一个在IT领域摸爬滚打20多年的老程序员、培训师、作者。精通多种IT技术。参与设计和开发北京市公交一卡通大型项目,开发国家农产品追溯系统、金融系统微博等移动客户端项目,并在App Store发布多款游戏和应用软件。 近期为中国移动、中国联通、南方航空、中石油、工商银行、平安银行和天津港务局等企事业单位授课。著有《iOS开发指南》《从零开始学Swift》《Android网络游戏开发实战》《Cocos2d-x实战》系列和《JSP网络程序设计》等40多本计算机书籍。
目录

推荐序    1

前言    3

配套资源说明    6

学习路线图    7

内容说明    9

第1篇  Kotlin基础

本篇视频:454分钟

第1章  开篇综述    2

本章视频:33分钟

1.1  Kotlin语言简介    2

1.1.1  Kotlin语言历史    2

1.1.2  Kotlin语言设计目标    2

1.2  Kotlin语言特点    3

1.3  Kotlin与Java虚拟机    4

1.3.1  Java虚拟机    4

1.3.2  Kotlin应用程序运行过程    5

1.4  如何获得帮助    5

第2章  开发环境搭建    8

本章视频:25分钟

2.1  JDK工具包    8

2.1.1  JDK下载和安装    8

2.1.2  设置环境变量    10

2.2  IntelliJ IDEA开发工具    12

2.3  Eclipse开发工具    13

2.3.1  Eclipse下载和安装    13

2.3.2  安装Kotlin插件    17

2.4  Kotlin编译器    18

2.4.1  下载Kotlin编译器    18

2.4.2  设置Kotlin编译器环境变量    19

2.5  文本编辑工具    20

2.5.1  在Sublime Text中安装Kotlin语言包    20

2.5.2  Sublime Text与Kotlin编译器集成    21

第3章  第一个Kotlin程序    25

本章视频:22分钟

3.1  使用REPL实现    25

3.2  使用IntelliJ IDEA实现    26

3.2.1  创建项目    26

3.2.2  创建Kotlin源代码文件    28

3.2.3  编写代码    29

3.2.4  运行程序    30

3.3  使用IntelliJ IDEA与Gradle实现    30

3.4  使用Eclipse与Kotlin插件实现    33

3.4.1  创建项目    33

3.4.2  创建Kotlin源代码文件    34

3.4.3  运行程序    35

3.5  使用文本编辑工具与Kotlin编译器实现    37

3.5.1  编写代码    37

3.5.2  编译程序    37

3.5.3  运行程序    39

3.6  代码解释    39

第4章  Kotlin语法基础    41

本章视频:52分钟

4.1  标识符和关键字    41

4.1.1  标识符    41

4.1.2  关键字    42

4.2  变量和常量    43

4.2.1  变量    43

4.2.2  常量和只读变量    44

4.2.3  使用var还是val    45

4.3  注释    46

4.4  语句与表达式    47

4.4.1  语句    48

4.4.2  表达式    48

4.5  包    49

4.5.1  包的作用    49

4.5.2  包的定义    50

4.5.3  包的引入    51

第5章  Kotlin编码规范    53

本章视频:49分钟

5.1  命名规范    53

5.2  注释规范    55

5.2.1  文件注释    55

5.2.2  文档注释    55

5.2.3  代码注释    58

5.2.4  使用地标注释    59

5.3  声明    60

5.3.1  变量或常量声明    60

5.3.2  类声明    61

5.4  代码排版    62

5.4.1  空行    62

5.4.2  空格    64

5.4.3  缩进    65

5.4.4  断行    65

5.5  省略规范    66

第6章  数据类型    68

本章视频:45分钟

6.1  回顾Java数据类型    68

6.2  Kotlin基本数据类型    69

6.2.1  整型类型    70

6.2.2  浮点类型    71

6.2.3  字符类型    72

6.2.4  布尔类型    74

6.3  数值类型之间的转换    75

6.3.1  赋值与显式转换    75

6.3.2  数学计算与隐式转换    77

6.4  可空类型    77

6.4.1  可空类型概念    78

6.4.2  使用安全调用运算符(?.)    78

6.4.3  非空断言运算符(!!)    79

6.4.4  使用Elvis运算符(?:)    80

第7章  字符串    82

本章视频:93分钟

7.1  字符串字面量    82

7.1.1  普通字符串    82

7.1.2  原始字符串    83

7.2  不可变字符串    85

7.2.1  String    85

7.2.2  字符串拼接    86

7.2.3  字符串模板    87

7.2.4  字符串查找    89

7.2.5  字符串比较    91

7.2.6  字符串截取    93

7.3  可变字符串    94

7.3.1  StringBuilder    94

7.3.2  字符串追加、插入、删除和替换    95

7.4  正则表达式    97

7.4.1  Regex类    97

7.4.2  字符串匹配    98

7.4.3  字符串查找    99

7.4.4  字符串替换    99

7.4.5  字符串分割    100

第8章  运算符    102

本章视频:51分钟

8.1  算术运算符    102

8.1.1  一元运算符    102

8.1.2  二元运算符    103

8.1.3  算术赋值运算符    104

8.2  关系运算符    105

8.3  逻辑运算符    107

8.4  位运算符    108

8.5  其他运算符    111

8.6  运算符优先级    111

第9章  程序流程控制    113

本章视频:47分钟

9.1  if分支结构    113

9.1.1  if结构当作语句使用    113

9.1.2  if表达式    115

9.2  when多分支结构    117

9.2.1  when结构当作语句使用    118

9.2.2  when表达式    119

9.3  循环结构    121

9.3.1  while语句    121

9.3.2  do-while语句    122

9.3.3  for语句    122

9.4  跳转语句    124

9.4.1  break语句    124

9.4.2  continue语句    126

9.5  使用区间    128

9.5.1  表示区间    128

9.5.2  使用in和!in关键字    129

第10章  函数    131

本章视频:37分钟

10.1  函数声明    131

10.2  返回特殊数据    132

10.2.1  无返回数据与Unit类型    132

10.2.2  永远不会正常返回数据与Nothing类型    133

10.3  函数参数    134

10.3.1  使用命名参数调用函数    134

 10.3.2  参数默认值    135

 10.3.3  可变参数    136

10.4  表达式函数体    137

10.5  局部函数    137

10.6  匿名函数    138

第2篇  面向对象

本篇视频:360分钟

第11章  面向对象编程    142

本章视频:246分钟

11.1  面向对象概述    142

11.2  面向对象的三个基本特性    143

 11.2.1  封装性    143

 11.2.2  继承性    143

 11.2.3  多态性    144

11.3  类声明    144

11.4  属性    146

 11.4.1  回顾JavaBean    146

 11.4.2  声明属性    147

 11.4.3  延迟初始化属性    150

 11.4.4  委托属性    151

 11.4.5  惰性加载属性    152

 11.4.6  可观察属性    153

11.5  扩展    154

 11.5.1  扩展函数    155

 11.5.2  扩展属性    156

 11.5.3 “成员优先”原则    157

 11.5.4  定义中缀运算符    159

11.6  构造函数    160

 11.6.1  主构造函数    160

 11.6.2  次构造函数    162

 11.6.3  默认构造函数    163

11.7  封装性与可见性修饰符    164

 11.7.1  可见性范围    164

 11.7.2  公有可见性    166

 11.7.3  内部可见性    167

 11.7.4  保护可见性    167

 11.7.5  私有可见性    168

11.8  数据类    169

 11.8.1  声明数据类    170

 11.8.2  使用copy函数    171

 11.8.3  解构数据类    172

11.9  枚举类    172

 11.9.1  声明枚举类    172

 11.9.2  枚举类构造函数    174

11.9.3  枚举常用属性和函数    175

11.10  嵌套类    176

 11.10.1  嵌套类    176

 11.10.2  内部类    178

11.11  强大的object关键字    180

 11.11.1  对象表达式    180

 11.11.2  对象声明    182

 11.11.3  伴生对象    184

第12章  继承与多态    188

本章视频:78分钟

12.1  Kotlin中的继承    188

12.2  调用父类构造函数    190

 12.2.1  使用主构造函数    191

12.2.2  使用次构造函数重载    192

12.2.3  使用参数默认值调用构造函数    193

12.3  重写成员属性和函数    194

 12.3.1  重写成员属性    194

 12.3.2  重写成员函数    195

12.4  多态    197

 12.4.1  多态概念    197

12.4.2  使用is和!is进行类型检查    199

12.4.3  使用as和as?进行类型转换    202

12.5  密封类    203

第13章  抽象类与接口    206

本章视频:36分钟

13.1  抽象类    206

 13.1.1  抽象类概念    206

 13.1.2  抽象类声明和实现    206

13.2  使用接口    209

 13.2.1  接口概念    209

 13.2.2  接口声明和实现    209

 13.2.3  接口与多继承    212

 13.2.4  接口继承    213

13.2.5  接口中的具体函数和属性    214

第3篇  函数式编程

本篇视频:302分钟

第14章  函数式编程基石——高阶函数和Lambda表达式    218

本章视频:91分钟

14.1  函数式编程简介    218

14.2  高阶函数    218

 14.2.1  函数类型    219

 14.2.2  函数字面量    220

14.2.3  函数作为另一个函数返回值使用    221

 14.2.4  函数作为参数使用    222

14.3  Lambda表达式    223

14.3.1  Lambda表达式标准语法格式    223

14.3.2  使用Lambda表达式    225

14.3.3  Lambda表达式简化写法    225

14.3.4  Lambda表达式与return语句    228

14.4  闭包与捕获变量    229

14.5  内联函数    232

 14.5.1  自定义内联函数    232

 14.5.2  使用let函数    233

14.5.3  使用with和apply函数    233

第15章  泛型    236

本章视频:51分钟

15.1  泛型函数    236

 15.1.1  声明泛型函数    236

 15.1.2  多类型参数    237

 15.1.3  泛型约束    237

 15.1.4  可空类型参数    238

15.2  泛型属性    239

15.3  泛型类    240

15.4  泛型接口    242

第16章  数据容器——数组和集合    245

本章视频:81分钟

16.1  数组    245

 16.1.1  对象数组    245

 16.1.2  基本数据类型数组    248

16.2  集合概述    249

16.3  Set集合    250

 16.3.1  不可变Set集合    250

 16.3.2  可变Set集合    252

16.4  List集合    254

 16.4.1  不可变List集合    255

 16.4.2  可变List集合    256

16.5  Map集合    258

 16.5.1  不可变Map集合    259

 16.5.2  可变Map集合    261

第17章  Kotlin中函数式编程API    264

本章视频:79分钟

17.1  函数式编程API与链式调用    264

17.2  遍历操作    265

 17.2.1  forEach    265

 17.2.2  forEachIndexed    266

17.3  三大基础函数    267

 17.3.1  filter    267

 17.3.2  map    268

 17.3.3  reduce    269

17.4  聚合函数    270

17.5  过滤函数    272

17.6  映射函数    273

17.7  排序函数    275

17.8  案例:求阶乘    276

17.9  案例:计算水仙花数    277

第4篇  Kotlin进阶

本篇视频:744分钟

第18章  异常处理    280

本章视频:67分钟

18.1  从一个问题开始    280

18.2  异常类继承层次    281

 18.2.1  Throwable类    281

 18.2.2  Error和Exception    283

18.3  捕获异常    283

 18.3.1  try-catch语句    284

 18.3.2  try-catch表达式    285

 18.3.3  多catch代码块    286

 18.3.4  try-catch语句嵌套    288

18.4  释放资源    289

 18.4.1  finally代码块    290

 18.4.2  自动资源管理    293

18.5  throw与显式抛出异常    294

第19章  线程    297

本章视频:49分钟

19.1  基础知识    297

 19.1.1  进程    297

 19.1.2  线程    297

 19.1.3  主线程    298

19.2  创建线程    299

19.3  线程状态    301

19.4  线程管理    302

 19.4.1  等待线程结束    302

 19.4.2  线程让步    304

 19.4.3  线程停止    305

第20章  协程    308

本章视频:57分钟

20.1  协程介绍    308

20.2  创建协程    308

 20.2.1  Kotlin协程API    308

20.2.2  创建支持kotlinx.coroutines的项目    309

 20.2.3  第一个协程程序    310

20.2.4  launch函数与Job对象    311

20.2.5  runBlocking函数    313

 20.2.6  挂起函数    314

20.3  协程生命周期    316

20.4  管理协程    317

 20.4.1  等待协程结束    317

 20.4.2  超时设置    318

 20.4.3  取消协程    320

第21章  Kotlin与Java混合编程    322

本章视频:77分钟

21.1  数据类型映射    322

21.1.1  Java基本数据类型与Kotlin数据类型映射    322

21.1.2  Java包装类与Kotlin数据类型映射    322

21.1.3  Java常用类与Kotlin数据类型映射    323

21.1.4  Java集合类型与Kotlin数据类型映射    323

21.2  Kotlin调用Java    324

 21.2.1  避免Kotlin关键字    324

 21.2.2  平台类型与空值    325

 21.2.3  异常检查    327

21.2.4  调用Java函数式接口    327

21.3  Java调用Kotlin    328

 21.3.1  访问Kotlin属性    329

 21.3.2  访问包级别成员    329

21.3.3  实例字段、静态字段和静态函数    330

 21.3.4  可见性    334

 21.3.5  生成重载函数    336

 21.3.6  异常检查    338

第22章  Kotlin I/O与文件管理    340

本章视频:49分钟

22.1  Java I/O流概述    340

 22.1.1  Java流设计理念    340

 22.1.2  Java流类继承层次    341

22.2  字节流    343

 22.2.1  InputStream抽象类    344

22.2.2  OutputStream抽象类    344

 22.2.3  案例:文件复制    345

22.3  字符流    346

 22.3.1  Reader抽象类    346

 22.3.2  Writer抽象类    346

 22.3.3  案例:文件复制    347

22.4  文件管理    348

 22.4.1  File类扩展函数    348

22.4.2  案例:读取目录文件    349

第23章  网络编程    351

本章视频:115分钟

23.1  网络基础    351

 23.1.1  网络结构    351

 23.1.2  TCP/IP协议    352

 23.1.3  IP地址    352

 23.1.4  端口    353

23.2  TCP Socket低层次网络编程    353

23.2.1  TCP Socket通信概述    353

23.2.2  TCP Socket通信过程    353

 23.2.3  Socket类    354

 23.2.4  ServerSocket类    356

23.2.5  案例:文件上传工具    356

23.3  UDP Socket低层次网络编程    358

 23.3.1  DatagramSocket类    358

 23.3.2  DatagramPacket类    359

23.3.3  案例:文件上传工具    360

23.4  数据交换格式    362

 23.4.1  JSON文档结构    363

23.4.2  使用第三方JSON库    365

23.4.3  JSON数据编码和解码    366

23.5  访问互联网资源    368

 23.5.1  URL的概念    368

 23.5.2  HTTP/HTTPS协议    369

 23.5.3  使用URL类    369

23.5.4  使用HttpURLConnection发送GET请求    370

23.5.5  使用HttpURLConnection发送POST请求    372

 23.5.6  实例:Downloader    373

第24章  Kotlin与Java Swing图形用户界面编程    375

本章视频:182分钟

24.1  Java图形用户界面技术    375

24.2  Swing技术基础    376

 24.2.1  Swing类层次结构    377

 24.2.2  Swing程序结构    378

24.3  事件处理模型    381

24.3.1  内部类和对象表达式处理事件    382

24.3.2  Lambda表达式处理事件    384

 24.3.3  使用适配器    385

24.4  布局管理    387

 24.4.1  FlowLayout布局    387

 24.4.2  BorderLayout布局    389

 24.4.3  GridLayout布局    391

 24.4.4  不使用布局管理器    393

24.5  Swing组件    395

 24.5.1  标签和按钮    395

 24.5.2  文本输入组件    398

 24.5.3  复选框和单选按钮    401

 24.5.4  下拉列表    404

 24.5.5  列表    406

 24.5.6  分隔面板    407

 24.5.7  使用表格    409

24.6  案例:图书库存    413

第25章  轻量级SQL框架—— Exposed    418

本章视频:91分钟

25.1  MySQL数据库管理系统    418

25.1.1  数据库安装与配置    418

25.1.2  连接MySQL服务器    422

 25.1.3  常见的管理命令    425

25.2  Kotlin与DSL语言    429

25.3  使用Exposed框架    430

 25.3.1  配置项目    430

 25.3.2  面向DSL API    431

 25.3.3  面向对象API    434

25.4  案例:多表连接查询操作    436

 25.4.1  创建数据库    437

 25.4.2  配置SQL日志    438

 25.4.3  实现查询    438

第26章  反射    442

本章视频:34分钟

26.1  Kotlin反射API    442

26.2  引用类    443

26.3  调用函数    445

26.4  调用构造函数    446

26.5  调用属性    448

第27章  注解    451

本章视频:23分钟

27.1  元注解    451

27.2  自定义注解    453

 27.2.1  声明注解    453

27.2.2  案例:使用元注解    454

 27.2.3  注解目标声明    456

27.2.4  案例:读取运行时注解信息    457

第5篇  项目实战

本篇视频:621分钟

第28章  项目实战1:开发PetStore宠物商店项目    460

本章视频:309分钟

28.1  系统分析与设计    460

 28.1.1  项目概述    460

 28.1.2  需求分析    461

 28.1.3  原型设计    461

 28.1.4  数据库设计    463

 28.1.5  架构设计    465

 28.1.6  系统设计    466

28.2  任务1:创建数据库    467

28.2.1  迭代1.1:安装和配置MySQL数据库    467

28.2.2  迭代1.2:编写数据库DDL脚本    467

28.2.3  迭代1.3:插入初始数据到数据库    468

28.3  任务2:初始化项目    469

28.3.1  迭代2.1:配置项目    469

28.3.2  迭代2.2:添加资源图片    470

 28.3.3  迭代2.3:添加包    471

28.4  任务3:编写数据持久层代码    471

28.4.1  迭代3.1:编写实体类    471

28.4.2  迭代3.2:创建数据表类    474

28.4.3  迭代3.3:编写DAO类    475

28.5  任务4:编写表示层代码    483

28.5.1  迭代4.1:编写启动类    483

28.5.2  迭代4.2:编写自定义窗口类——MyFrame    483

28.5.3  迭代4.3:用户登录窗口    485

28.5.4  迭代4.4:商品列表窗口    487

28.5.5  迭代4.5:商品购物车窗口    495

28.6  任务5:应用程序打包发布    503

28.6.1  迭代5.1:处理TODO和FIXME任务    503

 28.6.2  迭代5.2:打包    503

第29章  项目实战2:开发Kotlin版QQ2006聊天工具    507

本章视频:312分钟

29.1  系统分析与设计    507

 29.1.1  项目概述    507

 29.1.2  需求分析    508

 29.1.3  原型设计    509

 29.1.4  数据库设计    509

 29.1.5  网络拓扑图    512

 29.1.6  系统设计    512

29.2  任务1:创建服务器端数据库    513

29.2.1  迭代1.1:安装和配置MySQL数据库    513

29.2.2  迭代1.2:编写数据库DDL脚本    514

29.2.3  迭代1.3:插入初始数据到数据库    514

29.3  任务2:初始化项目    515

29.3.1  任务2.1:配置项目    515

29.3.2  任务2.2:添加资源图片    516

 29.3.3  任务2.3:添加包    517

29.4  任务3:编写服务器端外围代码    517

29.4.1  任务3.1:创建数据表类    517

29.4.2  任务3.2:编写UserDAO类    518

29.4.3  任务3.3:编写ClientInfo类    521

29.5  任务4:客户端UI实现    521

29.5.1  迭代4.1:登录窗口实现    521

29.5.2  迭代4.2:好友列表窗口实现    525

29.5.3  迭代4.3:聊天窗口实现    529

29.6  任务5:用户登录过程实现    533

29.6.1  迭代5.1:客户端启动    533

29.6.2  迭代5.2:客户端登录编程    535

29.6.3  迭代5.3:服务器启动    538

29.6.4  迭代5.4:服务器验证编程    539

29.7  任务6:刷新好友列表    541

29.7.1  迭代6.1:刷新好友列表服务器端编程    542

29.7.2  迭代6.2:刷新好友列表客户端编程    543

29.8  任务7:聊天过程实现    547

29.8.1  迭代7.1:客户端用户1向用户3发送消息    548

29.8.2  迭代7.2:服务器接收用户1消息与转发给用户3消息    549

29.8.3  迭代7.3:客户端用户3接收用户1消息    551

29.9  任务8:用户下线    552

29.9.1  迭代8.1:客户端编程    553

29.9.2  迭代8.2:服务器端编程    554

 

猜您喜欢

读书导航