Kotlin程序开发入门精要
资源名称:Kotlin程序开发入门精要
内容简介:
本书分3部分讲解Kotlin,第1部分(第1~11章)是Kotlin语言的基础部分,主要介绍了Kotlin的基础知识、语法以及大量的“语法糖”,如搭建Kotlin开发环境、数据类型、控制流、类、对象、接口、扩展、委托、Lambda表达式、操作符重载等。第2部分(第12~15章)主要介绍了如何用Kotlin开发Android App。由于Kotlin可以调用JDK中的API,所以在使用Kotlin开发Android App的过程中,很多都是调用JDK的API实现的,但开发语言使用的是Kotlin。因此,这一部分详细介绍了用Kotlin开发Android App 需要掌握的核心知识,如Activity、组件、布局、流文件、SQLite数据库、网络等技术。第3部分(第16章)是一个完整的案例:欧瑞天气。通过这个项目,可以让读者了解利用Kotlin开发Android App的全过程。
资源目录:
第1章Kotlin开发环境搭建1
1.1Kotlin概述1
1.1.1Kotlin是什么1
1.1.2为什么Kotlin突然成为热门2
1.1.3Kotlin相对于Java有哪些优势2
1.1.4Kotlin能做什么3
1.2在线运行Kotlin代码3
1.3安装和配置Kotlin6
1.3.1安装和配置JDK6
1.3.2Windows下安装和
配置Kotlin9
1.3.3MacOSX下安装和
配置Kotlin10
1.4测试Kotlin编译和运行环境10
1.4.1命令行方式使用Kotlin11
1.4.2Kotlin的REPL环境13
1.4.3在命令行中运行脚本文件14
1.4.4在浏览器中运行Kotlin程序14
1.4.5使用Node.js运行Kotlin程序16
1.4.6在微信小程序中运行Kotlin
程序17
1.4.7用Kotlin开启全栈开发模式21
1.5Kotlin中的语法糖22
1.6Kotlin的集成开发环境(IDE)24
1.6.1IntelliJIDEA的Kotlin基础开发
环境25
1.6.2使用AndroidStudio和Kotlin开发
AndroidApp29
1.7小结34
第2章Kotlin基础知识35
2.1Kotlin的基本语法35
2.1.1定义变量35
2.1.2定义函数36
2.1.3注释37
2.2基础数据类型37
2.2.1数值类型38
2.2.2字符类型39
2.2.3布尔类型41
2.2.4数组41
2.2.5字符串42
2.2.6字符串模板43
2.3包(Package)43
2.4控制流46
2.4.1条件语句46
2.4.2when语句46
2.4.3for循环48
2.4.4while循环49
2.5小结50
第3章类和接口51
3.1类的声明51
3.2构造器51
3.2.1主构造器51
3.2.2第二构造器53
3.2.3Kotlin中的Singleton模式54
3.2.4Kotlin函数中的默认参数55
3.2.5创建类的实例58
3.3类成员58
3.3.1属性的基本用法58
3.3.2属性的getter和setter形式60
3.3.3保存属性值的字段60
3.3.4函数61
3.3.5嵌套类63
3.4修饰符(Modifiers)64
3.5类的继承65
3.5.1Kotlin类如何继承65
3.5.2重写方法65
3.5.3重写属性66
3.6接口67
3.7抽象类68
3.8小结68
第4章枚举类和扩展69
4.1枚举类69
4.1.1枚举类的基本用法69
4.1.2为枚举值指定对应的数值70
4.1.3枚举类的其他功能71
4.2扩展72
4.2.1扩展原生API72
4.2.2扩展自定义类73
4.2.3成员函数冲突的解决方案75
4.2.4扩展属性76
4.2.5扩展伴随对象
(CompanionObject)76
4.2.6扩展的范围77
4.2.7在类中使用扩展77
4.2.8调用特定类的成员函数78
4.2.9扩展成员的继承79
4.3小结80
第5章数据类和封闭类81
5.1数据类(DataClass)81
5.1.1使用数据类81
5.1.2对象复制84
5.1.3数据类成员的解构85
5.2封闭类(SealedClasses)86
5.3小结86
第6章泛型87
6.1泛型基础87
6.2类型变异88
6.3类型投射90
6.4星号投射92
6.5泛型函数92
6.6泛型约束93
6.7小结93
第7章对象和委托94
7.1对象94
7.1.1对象表达式94
7.1.2声明匿名对象97
7.1.3访问封闭作用域内的变量97
7.1.4陪伴对象99
7.2委托99
7.2.1类的委托99
7.2.2委托属性100
7.2.3委托类的初始化函数102
7.2.4委托的前提条件104
7.3标准委托104
7.3.1惰性装载105
7.3.2可观察属性105
7.3.3阻止属性的赋值操作106
7.3.4Map委托107
7.3.5MutableMap委托108
7.4小结108
第8章高阶函数与Lambda表达式109
8.1高阶函数109
8.2Lambda表达式与匿名函数110
8.2.1函数类型111
8.2.2Lambda表达式的语法111
8.2.3匿名函数112
8.2.4闭包(Closure)113
8.3小结113
第9章函数114
9.1函数基本用法114
9.2使用中缀标记法调用函数114
9.3单表达式函数115
9.4函数参数和返回值116
9.4.1可变参数116
9.4.2返回值类型117
9.5函数的范围117
9.5.1局部函数117
9.5.2成员函数118
9.6泛型函数118
9.7内联函数119
9.7.1让Lambda表达式内联进
函数119
9.7.2内联部分Lambda表达式121
9.7.3非局部返回
(Non-localreturn)124
9.7.4实体化的类型参数
(Reifiedtypeparameter)125
9.7.5内联属性126
9.8小结127
第10章其他Kotlin技术(1)128
10.1数据解构128
10.2集合130
10.3值范围132
10.3.1值范围的应用132
10.3.2值范围的工作原理134
10.3.3常用工具函数135
10.4类型检查与类型转换136
10.4.1is与!is操作符136
10.4.2智能类型转换138
10.4.3强行类型转换139
10.5this表达式140
10.6相等判断140
10.7操作符重载141
10.7.1一元操作符重载141
10.7.2二元操作符142
10.7.3方括号操作符重载144
10.7.4赋值操作符重载146
10.7.5逻辑操作符重载147
10.8小结149
第11章其他Kotlin技术(2)150
11.1null值安全性150
11.1.1可为null的类型与不可为null
的类型150
11.1.2在条件语句中进行null检查151
11.1.3安全调用操作符152
11.1.4Elvis操作符152
11.1.5!!操作符153
11.1.6安全的类型转换153
11.1.7可为null的类型构成的集合153
11.2异常类153
11.3注解(Annotations)155
11.3.1使用注解156
11.3.2注解类的构造器157
11.3.3Lambda表达式158
11.4反射(Reflection)158
11.4.1类引用(ClassReference)159
11.4.2枚举类成员159
11.4.3动态调用成员函数161
11.4.4动态调用成员属性161
11.5小结163
第12章Android的窗口——Activity164
12.1什么是Activity164
12.2Activity的基本用法164
12.2.1创建一个不包含任何Activity
的Android工程165
12.2.2手动创建Activity167
12.2.3创建和加载布局168
12.2.4在AndroidManifest文件中注册
Activity172
12.2.5编译和运行Android工程172
12.2.6为Activity添加新组件173
12.2.7为Activity添加逻辑代码174
12.2.8为Activity添加Toast175
12.2.9关闭Activity178
12.3使用Intent连接多个Activity178
12.3.1使用显式Intent179
12.3.2使用隐式Intent182
12.3.3为隐式Intent设置更多的过滤
条件185
12.3.4使用隐式Intent访问
系统App187
12.4向Activity中传递数据189
12.5从Activity返回数据191
12.6Activity的生命周期192
12.7记录当前活动的Activity196
12.8小结197
第13章AndroidApp的装饰工具——
UI组件与布局198
13.1如何编写程序界面198
13.2常用的UI组件198
13.2.1文本显示组件
(TextView)198
13.2.2按钮组件(Button)202
13.2.3文本编辑组件(EditText)206
13.2.4图像组件(ImageView)210
13.2.5进度条组件(ProgressBar)213
13.2.6对话框组件(AlertDialog)216
13.3布局详解217
13.3.1线性布局(LinearLayout)217
13.3.2相对布局(RelativeLayout)222
13.3.3帧布局(FrameLayout)226
13.3.4百分比布局
(PercentFrameLayout)227
13.4小结230
第14章永久保存数据的方式——
持久化技术231
14.1SharedPreferences存储231
14.1.1将数据存储到SharedPreferences
中231
14.1.2从SharedPreferences读取
数据234
14.1.3利用SharedPreferences存取用户名
和密码235
14.2文件流操作239
14.2.1openFileOutput和openFileInput
方法239
14.2.2读写SD卡上的文件242
14.3App权限的授予和拒绝248
14.4读写JSON格式的数据250
14.5SQLite数据库257
14.5.1SQLite数据库管理
工具257
14.5.2创建SQLite数据库和
数据表261
14.5.3向SQLite数据表中插入
数据264
14.5.4删除SQLite数据表中的
数据265
14.5.5更新SQLite数据表中的
数据266
14.5.6查询SQLite表中的数据267
14.5.7将数据库与App一起
发布268
14.6小结270
第15章连接外部世界——网络技术271
15.1WebView组件271
15.2使用HTTP与服务端进行交互273
15.2.1使用HttpURLConnection273
15.2.2使用OkHttp276
15.3小结282
第16章项目实战——欧瑞天气App283
16.1项目概述283
16.2添加依赖284
16.3实现主窗口285
16.4显示地区列表286
16.4.1描述城市信息的数据类286
16.4.2处理JSON格式的城市列表
信息286
16.4.3天气信息描述类288
16.4.4获取城市信息的对象290
16.4.5在ListView组件中显示地区
列表293
16.5显示天气信息298
16.6小结303
资源截图: