发表于2024-12-22
疯狂Kotlin讲义 pdf epub mobi txt 电子书 下载
1.逻辑结构更合理
《疯狂Kotlin讲义》在内容体系上将函数式编程和面向对象编程独立开来,先介绍函数式编程部分,再介绍面向对象编程,更符合Kotlin语言本身的知识体系。而不像某些资料一会儿函数,一会儿面向对象,搅得读者晕头转向。实际上,无论是经典的图书如《C++ Primer》,还是Swift官方文档(甚至Kotlin官方文档),几乎都没见过一会儿函数、一会儿面向对象这样介绍的。
另外,整本书的知识具有和《疯狂Java讲义》大致相同的脉络,所以《疯狂Java讲义》的读者会很容易上手。
2.讲解深入本质
Kotlin是JVM语言,所以其很多东西其实是受到Java的影响的。书中会对一些看似奇怪的语法从字节码文件层次进行剖析,让读者更好地理解Kotlin与Java的对应关系。
3.知识内容更全面
《疯狂Kotlin讲义》内容超过Kotlin官方文档本身所覆盖的知识,比如介绍反射的章节就超过了Kotlin官方文档内容。《疯狂Kotlin讲义》反射部分不仅更详细地介绍如何获得类、函数、属性的引用,而且真正从API级别介绍KClass、KCallable、KFunction、KProperty,KProperty0、KProperty1、KProperty2的用法,以及它们的内在关联,并实实在在地教读者掌握如何用Kotlin反射动态创建对象、动态调用方法。
Kotlin是JetBrains在2011年推出的一门全新的编程语言,这门语言期初被设计成运行在JVM上――使用Kotlin编写的程序会被编译成字节码文件,该字节码文件可直接在JVM上运行(用java,命令运行)。目前Google已推荐使用Kotlin作为Android的官方开发语言,这意味着Kotlin将会在Android开发上大放异彩。《疯狂Kotlin讲义》全面介绍了Kotlin的语法。从各平台上Kotlin程序的编译、运行开始介绍,详细介绍了Kotlin的基本语法,Kotlin的数组和集合,Kotlin函数式编程特征,Kotlin的面向对象编程、异常处理、泛型和注解,还介绍了Kotlin与Java混合调用的相关内容,以及Kotlin反射相关内容。本书对Kotlin的解读十分系统、全面,超过Kotlin官方文档本身覆盖的内容。本书很多地方都会结合Java字节码进行深入解读,比如对Kotlin扩展的解读,对Kotlin主、次构造器的解读,这种解读目的不止于教会读者简单地掌握Kotlin的用法,而是力求让读者深入理解Kotlin,且更好地理解Java。简单来说,本书不仅是一本Kotlin的学习图书,而且也是一本能让你更深入地理解Java的图书。如果读者在阅读本书时遇到了技术问题,可以登录疯狂Java联盟(http://www.crazyit.org)发帖,笔者将会及时予以解答。
李刚,十余年软件开发从业经验,疯狂软件教育中心教学总监。疯狂Java实训营创始人,疯狂Java体系原创图书作者。广东技术师范学院计算机科学系兼职副教授,CSDN特邀讲师。培训的学生已在腾讯、阿里、华为、IBM、网易、唯品会、电信盈科等名企就职。国内知名高端IT技术图书作家,已出版《疯狂Java讲义》《疯狂Android讲义》《轻量级Java EE企业应用实战》《疯狂前端开发讲义》《疯狂HTML5/CSS3/JavaScript讲义》《疯狂iOS讲义(基础篇)(提高篇)》《疯狂XML讲义》《经典JavaEE企业应用实战》《Struts 2.x quan wei指南》等著作。其中疯狂Java体系图书均已沉淀多年,赢得极高的市场认同,多次重印,多部著作印刷数量超过10万册,并被多所“985”“211”院校选作教材,部分图书已被翻译成繁体中文版,授权到中国台湾地区。
第1章 Kotlin语言与开发环境 1
1.1 Kotlin语言简介 2
1.1.1 服务端的Kotlin 2
1.1.2 使用Kotlin开发Android应用 2
1.1.3 Kotlin用于JavaScript 3
1.2 使用命令行编译、运行Kotlin 3
1.2.1 下载和安装Kotlin的SDK 3
1.2.2 第一个Kotlin程序 4
1.2.3 编译、运行Kotlin程序 5
1.3 使用IntelliJ IDEA编译、运行Kotlin 6
1.4 使用Eclipse编译、运行Kotlin 8
1.5 本章小结 10
第2章 Kotlin的基础类型 11
2.1 注释 12
2.1.1 单行注释和多行注释 12
2.1.2 文档注释 12
2.2 变量 14
2.2.1 分隔符 15
2.2.2 标识符规则 16
2.2.3 Kotlin的关键字 17
2.2.4 声明变量 19
2.3 整型 21
2.4 浮点型 23
2.5 字符型 24
2.6 数值型之间的类型转换 25
2.6.1 整型之间的转换 25
2.6.2 浮点型与整型之间的转换 28
2.6.3 表达式类型的自动提升 28
2.7 Boolean类型 30
2.8 null安全 31
2.8.1 非空类型和可空类型 31
2.8.2 先判断后使用 32
2.8.3 安全调用 32
2.8.4 Elvis运算 33
2.8.5 强制调用 34
2.9 字符串 34
2.9.1 字符串类型 34
2.9.2 字符串模板 35
2.9.3 Kotlin字符串的方法 36
2.10 类型别名 37
2.11 本章小结 38
第3章 运算符和表达式 39
3.1 与Java相同的运算符 40
3.1.1 单目前缀运算符 40
3.1.2 自加和自减运算符 41
3.1.3 双目算术运算符 41
3.1.4 in和!in运算符 42
3.1.5 索引访问运算符 43
3.1.6 调用运算符 43
3.1.7 广义赋值运算符 44
3.1.8 相等与不等运算符 44
3.1.9 比较运算符 45
3.2 位运算符 46
3.3 区间运算符 48
3.3.1 闭区间运算符 48
3.3.2 半开区间运算符 49
3.3.3 反向区间 49
3.3.4 区间步长 49
3.4 运算符重载 50
3.4.1 重载单目前缀运算符 50
3.4.2 重载自加和自减运算符 51
3.4.3 重载双目算术运算符 51
3.5 本章小结 52
第4章 流程控制 53
4.1 顺序结构 54
4.2 分支结构 54
4.2.1 if分支 54
4.2.2 if表达式 58
4.2.3 when分支语句 58
4.2.4 when表达式 61
4.2.5 when分支处理范围 62
4.2.6 when分支处理类型 62
4.2.7 when条件分支 63
4.3 循环结构 63
4.3.1 while循环 64
4.3.2 do while循环 65
4.3.3 for-in循环 66
4.3.4 嵌套循环 66
4.4 控制循环结构 68
4.4.1 使用break结束循环 68
4.4.2 使用continue忽略本次循环的剩下语句 69
4.4.3 使用return结束方法 70
4.5 本章小结 71
第5章 数组和集合 72
5.1 数组 73
5.1.1 创建数组 73
5.1.2 使用数组 75
5.1.3 使用for-in循环遍历数组 76
5.1.4 使用数组索引 76
5.1.5 数组的常用方法 77
5.1.6 多维数组 80
5.1.7 数组的应用举例 82
5.2 Kotlin集合概述 85
5.3 Set集合 88
5.3.1 声明和创建Set集合 88
5.3.2 使用Set的方法 90
5.3.3 遍历Set 91
5.3.4 可变的Set 92
5.4 List集合 93
5.4.1 声明和创建List集合 93
5.4.2 使用List的方法 94
5.4.3 可变的List 95
5.5 Map集合 95
5.5.1 声明和创建Map集合 95
5.5.2 使用Map的方法 97
5.5.3 遍历Map 98
5.5.4 可变的Map 98
5.6 本章小结 99
第6章 函数和Lambda表达式 100
6.1 函数入门 101
6.1.1 定义和调用函数 101
6.1.2 函数返回值和Unit 102
6.1.3 递归函数 103
6.1.4 单表达式函数 104
6.2 函数的形参 105
6.2.1 命名参数 105
6.2.2 形参默认值 106
6.2.3 尾递归函数 108
6.2.4 个数可变的形参 109
6.3 函数重载 110
6.4 局部函数 111
6.5 高阶函数 112
6.5.1 使用函数类型 112
6.5.2 使用函数类型作为形参类型 113
6.5.3 使用函数类型作为返回值类型 114
6.6 局部函数与Lambda表达式 115
6.6.1 回顾局部函数 116
6.6.2 使用Lambda表达式代替局部函数 116
6.6.3 Lambda表达式的脱离 117
6.7 Lambda表达式 117
6.7.1 调用Lambda表达式 118
6.7.2 利用上下文推断类型 118
6.7.3 省略形参名 119
6.7.4 调用Lambda表达式的约定 120
6.7.5 个数可变的参数和Lambda参数 120
6.8 匿名函数 121
6.8.1 匿名函数的用法 121
6.8.2 匿名函数和Lambda表达式的return 122
6.9 捕获上下文中的变量和常量 123
6.10 内联函数 125
6.10.1 内联函数的使用 125
6.10.2 部分禁止内联 126
6.10.3 非局部返回 127
6.11 本章小结 128
第7章 面向对象(上) 129
7.1 类和对象 130
7.1.1 定义类 130
7.1.2 对象的产生和使用 132
7.1.3 对象的this引用 133
7.2 方法详解 136
7.2.1 方法与函数的关系 136
7.2.2 中缀表示法 137
7.2.3 componentN方法与解构 138
7.2.4 数据类和返回多个值的函数 140
7.2.5 在Lambda表达式中解构 141
7.3 属性和字段 142
7.3.1 读写属性和只读属性 142
7.3.2 自定义getter和setter 144
7.3.3 幕后字段 147
7.3.4 幕后属性 148
7.3.5 延迟初始化属性 149
7.3.6 内联属性 150
7.4 隐藏和封装 151
7.4.1 包和导包 151
7.4.2 Kotlin的默认导入 153
7.4.3 使用访问控制符 153
7.5 深入构造器 155
7.5.1 主构造器和初始化块 156
7.5.2 次构造器和构造器重载 158
7.5.3 主构造器声明属性 161
7.6 类的继承 161
7.6.1 继承的语法 161
7.6.2 重写父类的方法 164
7.6.3 重写父类的属性 166
7.6.4 super限定 167
7.6.5 强制重写 168
7.7 多态 169
7.7.1 多态性 169
7.7.2 使用is检查类型 170
7.7.3 使用as运算符转型 172
7.8 本章小结 174
第8章 面向对象(下) 175
8.1 扩展 176
8.1.1 扩展方法 176
8.1.2 扩展的实现机制 179
8.1.3 为可空类型扩展方法 182
8.1.4 扩展属性 182
8.1.5 以成员方式定义扩展 183
8.1.6 带接收者的匿名函数 184
8.1.7 何时使用扩展 186
8.2 final和open修饰符 187
8.2.1 可执行“宏替换”的常量 187
8.2.2 final属性 188
8.2.3 final方法 189
8.2.4 final类 190
8.2.5 不可变类 190
8.3 抽象类 192
8.3.1 抽象成员和抽象类 192
8.3.2 抽象类的作用 195
8.3.3 密封类 196
8.4 接口 198
8.4.1 接口的定义 198
8.4.2 接口的继承 199
8.4.3 使用接口 200
8.4.4 接口和抽象类 202
8.5 嵌套类和内部类 202
8.5.1 内部类 204
8.5.2 嵌套类 207
8.5.3 在外部类以外使用内部类 209
8.5.4 在外部类以外使用嵌套类 209
8.5.5 局部嵌套类 210
8.5.6 匿名内部类 211
8.6 对象表达式和对象声明 212
8.6.1 对象表达式 212
8.6.2 对象声明和单例模式 215
8.6.3 伴生对象和静态成员 217
8.6.4 伴生对象的扩展 218
8.7 枚举类 219
8.7.1 枚举类入门 219
8.7.2 枚举类的属性、方法和构造器 221
8.7.3 实现接口的枚举类 222
8.7.4 包含抽象方法的抽象枚举类 222
8.8 类委托和属性委托 223
8.8.1 类委托 224
8.8.2 属性委托 225
8.8.3 延迟属性 227
8.8.4 属性监听 228
8.8.5 使用Map存储属性值 230
8.8.6 局部属性委托 231
8.8.7 委托工厂 233
8.9 本章小结 234
第9章 异常处理 236
9.1 异常处理机制 237
9.1.1 使用try...catch捕获异常 237
9.1.2 异常类的继承体系 240
9.1.3 访问异常信息 242
9.1.4 异常处理嵌套 243
9.1.5 try语句是表达式 243
9.2 使用throw抛出异常 243
9.2.1 抛出异常 243
9.2.2 自定义异常类 244
9.2.3 catch和throw同时使用 245
9.2.4 异常链 246
9.2.5 throw语句是表达式 247
9.3 异常的跟踪栈 248
9.4 本章小结 250
第10章 泛型 251
10.1 泛型入门 252
10.1.1 定义泛型接口、类 252
10.1.2 从泛型类派生子类 253
10.2 型变 254
10.2.1 泛型型变的需要 254
10.2.2 声明处型变 256
10.2.3 使用处型变:类型投影 258
10.2.4 星号投影 260
10.3 泛型函数 261
10.3.1 泛型函数的使用 261
10.3.2 具体化类型参数 262
10.4 设定类型形参的上限 263
10.5 本章小结 264
第11章 注解 266
11.1 Kotlin注解入门 267
11.1.1 定义注解 267
11.1.2 注解的属性和构造器 268
11.2 元注解 270
11.2.1 使用@Retention 270
11.2.2 使用@Target 271
11.2.3 使用@MustBeDocumented 272
11.2.4 使用@Repeatable标记可重复注解 273
11.3 使用注解 273
11.3.1 提取注解信息 273
11.3.2 使用注解的示例 274
11.4 Java注解与Kotlin的兼容性 279
11.4.1 指定注解的作用目标 279
11.4.2 使用Java注解 281
11.5 本章小结 282
第12章 Kotlin与Java互相调用 283
12.1 Kotlin调用Java 284
12.1.1 属性 284
12.1.2 void和调用名为关键字的成员 285
12.1.3 Kotlin的已映射类型 286
12.1.4 Kotlin对Java泛型的转换 287
12.1.5 对Java数组的处理 287
12.1.6 调用参数个数可变的方法 288
12.1.7 checked异常 289
12.1.8 Object的处理 289
12.1.9 访问静态成员 290
12.1.10 SAM转换 290
12.1.11 在Kotlin中使用JNI 291
12.2 Java调用Kotlin 291
12.2.1 属性 291
12.2.2 包级函数 292
12.2.3 实例变量 294
12.2.4 类变量 294
12.2.5 类方法 296
12.2.6 访问控制符的对应关系 297
12.2.7 获取KClass 298
12.2.8 使用@JvmName解决签名冲突 298
12.2.9 生成重载 299
12.2.10 checked异常 300
12.2.11 泛型的型变 300
12.3 Kotlin反射 302
12.3.1 类引用 302
12.3.2 从KClass获取类信息 303
12.3.3 创建对象 306
12.3.4 构造器引用 306
12.3.5 调用方法 307
12.3.6 函数引用 308
12.3.7 访问属性值 309
12.3.8 属性引用 311
12.3.9 绑定的方法与属性引用 313
12.4 本章小结 313
前 言
Kotlin是JetBrains在2011年推出的一门全新的编程语言,这门语言最早被设计成运行在JVM上——使用Kotlin编写的程序会被编译成字节码文件,该字节码文件可直接在JVM上运行(用java命令运行即可)。Kotlin可以与现有的Java语言包保持完全兼容,而且Kotlin代码比Java代码更简洁。Kotlin增加了扩展、对象表达式、对象声明、委托等Java原本不支持的功能,它们都是现代编程语言广泛支持的功能,并且完全可以在JVM上运行。
简单来说,Kotlin既可利用Java的优势,又比Java更简洁。
Kotlin与现有的Java语言包保持完全兼容,这意味着Kotlin不是 疯狂Kotlin讲义 电子书 下载 mobi epub pdf txt
为了支持作者才买的实体书,而没有买网上收费的电子书。只不过,京东给我的服务是让我很失望的,一码归一码,送货派件很快。但我拆开的时候,包书的塑料纸已经烂掉了,因为开拆的时候,想赶紧看看书的内容,就没注意。结果发现书面已经皱了,还有很多书在地面上摩擦才会产生的道道。而且,不是一本书出现这样的问题,是两本。不要说我吹毛求疵,又不影响阅读,能怎么样。说真的,与其花一百多快去买两本看起来像二手的书,我为什么不能去周围大学花几十买一堆人家的书。第一次在京东买书,很失望,我也不指望有什么后续了
评分好好学习天天向上,向钱看
评分讲的很到位,最新版的,java 9,学习java 很不错的一本书
评分此用户未填写评价内容
评分还是疯狂系列的特色。纸质不咋地,其实封面设计也挺奇怪的。。。
评分书不错,很厚实,讲得很细致,内容很丰富,学习中,快递也快。
评分促膝长谈重复推他媳妇许
评分号称android的swift,疯狂讲义系列,不错,可以好好看看来着……………
评分书很好,包装特别严实,京东物流也很快,下次还回来买
疯狂Kotlin讲义 pdf epub mobi txt 电子书 下载