內(nèi) 容 提 要 本書分3部分講解Kotlin,第1部分(第1~11章)是Kotlin語言的基礎(chǔ)部分,主要介紹了Kotlin的基礎(chǔ)知識、語法以及大量的“語法糖”,如搭建Kotlin開發(fā)環(huán)境、數(shù)據(jù)類型、控制流、類、對象、接口、擴(kuò)展、委托、Lambda表達(dá)式、操作符重載等。第2部分(第12~15章)主要介紹了如何用Kotlin開發(fā)Android App。由于Kotlin可以調(diào)用JDK中的API,所以在使用Kotlin開發(fā)Android App的過程中,很多都是調(diào)用JDK的API實現(xiàn)的,但開發(fā)語言使用的是Kotlin。因此,這一部分詳細(xì)介紹了用Kotlin開發(fā)Android App 需要掌握的核心知識,如Activity、組件、布局、流文件、SQLite數(shù)據(jù)庫、網(wǎng)絡(luò)等技術(shù)。第3部分(第16章)是一個完整的案例:歐瑞天氣。通過這個項目,可以讓讀者了解利用Kotlin開發(fā)Android App的全過程。
書 視頻學(xué)習(xí) 學(xué)習(xí)效果測試 開發(fā)闖關(guān)測試 項目實戰(zhàn),貼心跟蹤讀者學(xué)習(xí)效果,學(xué)習(xí)Kotlin這一本就夠! 基于新的Kotlin版本 一本全程視頻陪伴,貼心跟蹤初學(xué)者學(xué)習(xí)效果的Kotlin開發(fā)書 贈送近70小時視頻課程,包括Kotlin和Android開發(fā),供讀者學(xué)習(xí)使用 通過Kotlin開發(fā)題庫提供大量的測試題以及過關(guān)系統(tǒng),讀者可以用通關(guān)的方式更有效地學(xué)習(xí)書中的知識,提高學(xué)習(xí)的效率 隨時互動答疑,有問題的學(xué)員可以通過歐瑞科技的問答社區(qū)(https://geekori.com)提問,會有專人回答讀者提出的問題,以及通過博客系統(tǒng)總結(jié)書中學(xué)到的知識,同時,提出問題、回答問題以及撰寫的博客越多,就會增加讀者的積分,以后學(xué)寧老師其他的課程和獲取其他資源,會有更大的優(yōu)惠。
李寧,歐瑞科技創(chuàng)始人,極客起源IT問答社區(qū)(https://geekori.com)創(chuàng)始人,歐瑞學(xué)院金-牌講師,計算機(jī)專業(yè)碩士。擁有近20年軟件開發(fā)經(jīng)驗,10年企業(yè)內(nèi)訓(xùn)經(jīng)驗。曾任國內(nèi)某大型軟件公司項目經(jīng)理。CSDN博客專家、CSDN學(xué)院簽約講師、51CTO學(xué)院特級講師。長久以來一直從事JavaScript、Node.js、Java、Kotlin、Python、Android、iOS、C 、Hadoop、Spark、深度學(xué)習(xí)的開發(fā)和技術(shù)指導(dǎo)工作。對國內(nèi)外相關(guān)領(lǐng)域的技術(shù)、理論和實踐有很深的理解和研究。目前已經(jīng)出版超過30本IT暢銷書,主要著作包括《Kotlin程序開發(fā)入門精要》《Android深度探索 卷1和卷2》《Android開發(fā)指南 第1版和第2版》等。
目錄
第1章 Kotlin開發(fā)環(huán)境搭建 1
1.1 Kotlin概述 1
1.1.1 Kotlin是什么 1
1.1.2 為什么Kotlin突然成為熱門 2
1.1.3 Kotlin相對于Java有哪些優(yōu)勢 2
1.1.4 Kotlin能做什么 3
1.2 在線運(yùn)行Kotlin代碼 3
1.3 安裝和配置Kotlin 6
1.3.1 安裝和配置JDK 6
1.3.2 Windows下安裝和
配置Kotlin 9
1.3.3 Mac OS X下安裝和
配置Kotlin 10
1.4 測試Kotlin編譯和運(yùn)行環(huán)境 10
1.4.1 命令行方式使用Kotlin 11
1.4.2 Kotlin的REPL環(huán)境 13
1.4.3 在命令行中運(yùn)行腳本文件 14
1.4.4 在瀏覽器中運(yùn)行Kotlin程序 14
1.4.5 使用Node.js運(yùn)行Kotlin程序 16
1.4.6 在微信小程序中運(yùn)行Kotlin
程序 17
1.4.7 用Kotlin開啟全棧開發(fā)模式 21
1.5 Kotlin中的語法糖 22
1.6 Kotlin的集成開發(fā)環(huán)境(IDE) 24
1.6.1 IntelliJ IDEA 的Kotlin基礎(chǔ)開發(fā)
環(huán)境 25
1.6.2 使用Android Studio和Kotlin開發(fā)
Android App 29
1.7 小結(jié) 34
第2章 Kotlin基礎(chǔ)知識 35
2.1 Kotlin的基本語法 35
2.1.1 定義變量 35
2.1.2 定義函數(shù) 36
2.1.3 注釋 37
2.2 基礎(chǔ)數(shù)據(jù)類型 37
2.2.1 數(shù)值類型 38
2.2.2 字符類型 39
2.2.3 布爾類型 41
2.2.4 數(shù)組 41
2.2.5 字符串 42
2.2.6 字符串模板 43
2.3 包(Package) 43
2.4 控制流 46
2.4.1 條件語句 46
2.4.2 when語句 46
2.4.3 for循環(huán) 48
2.4.4 while循環(huán) 49
2.5 小結(jié) 50
第3章 類和接口 51
3.1 類的聲明 51
3.2構(gòu)造器 51
3.2.1 主構(gòu)造器 51
3.2.2 第二構(gòu)造器 53
3.2.3 Kotlin中的Singleton模式 54
3.2.4 Kotlin函數(shù)中的默認(rèn)參數(shù) 55
3.2.5 創(chuàng)建類的實例 58
3.3 類成員 58
3.3.1 屬性的基本用法 58
3.3.2 屬性的getter和setter形式 60
3.3.3 保存屬性值的字段 60
3.3.4 函數(shù) 61
3.3.5 嵌套類 63
3.4 修飾符(Modifiers) 64
3.5 類的繼承 65
3.5.1 Kotlin類如何繼承 65
3.5.2 重寫方法 65
3.5.3 重寫屬性 66
3.6 接口 67
3.7 抽象類 68
3.8 小結(jié) 68
第4章 枚舉類和擴(kuò)展 69
4.1枚舉類 69
4.1.1 枚舉類的基本用法 69
4.1.2 為枚舉值指定對應(yīng)的數(shù)值 70
4.1.3 枚舉類的其他功能 71
4.2 擴(kuò)展 72
4.2.1 擴(kuò)展原生API 72
4.2.2 擴(kuò)展自定義類 73
4.2.3 成員函數(shù)沖突的解決方案 75
4.2.4 擴(kuò)展屬性 76
4.2.5 擴(kuò)展伴隨對象
(Companion Object) 76
4.2.6 擴(kuò)展的范圍 77
4.2.7 在類中使用擴(kuò)展 77
4.2.8 調(diào)用特定類的成員函數(shù) 78
4.2.9 擴(kuò)展成員的繼承 79
4.3 小結(jié) 80
第5章 數(shù)據(jù)類和封閉類 81
5.1數(shù)據(jù)類(Data Class) 81
5.1.1 使用數(shù)據(jù)類 81
5.1.2 對象復(fù)制 84
5.1.3 數(shù)據(jù)類成員的解構(gòu) 85
5.2封閉類(Sealed Classes) 86
5.3小結(jié) 86
第6章 泛型 87
6.1 泛型基礎(chǔ) 87
6.2類型變異 88
6.3類型投射 90
6.4 星號投射 92
6.5 泛型函數(shù) 92
6.6 泛型約束 93
6.7 小結(jié) 93
第7章 對象和委托 94
7.1 對象 94
7.1.1 對象表達(dá)式 94
7.1.2 聲明匿名對象 97
7.1.3 訪問封閉作用域內(nèi)的變量 97
7.1.4 陪伴對象 99
7.2 委托 99
7.2.1 類的委托 99
7.2.2 委托屬性 100
7.2.3 委托類的初始化函數(shù) 102
7.2.4 委托的前提條件 104
7.3 標(biāo)準(zhǔn)委托 104
7.3.1惰性裝載 105
7.3.2 可觀察屬性 105
7.3.3 阻止屬性的賦值操作 106
7.3.4 Map委托 107
7.3.5 MutableMap委托 108
7.4 小結(jié) 108
第8章 高階函數(shù)與Lambda表達(dá)式 109
8.1 高階函數(shù) 109
8.2 Lambda表達(dá)式與匿名函數(shù) 110
8.2.1 函數(shù)類型 111
8.2.2 Lambda表達(dá)式的語法 111
8.2.3 匿名函數(shù) 112
8.2.4閉包(Closure) 113
8.3 小結(jié) 113
第9章 函數(shù) 114
9.1 函數(shù)基本用法 114
9.2 使用中綴標(biāo)記法調(diào)用函數(shù) 114
9.3 單表達(dá)式函數(shù) 115
9.4函數(shù)參數(shù)和返回值 116
9.4.1 可變參數(shù) 116
9.4.2返回值類型 117
9.5 函數(shù)的范圍 117
9.5.1局部函數(shù) 117
9.5.2成員函數(shù) 118
9.6泛型函數(shù) 118
9.7內(nèi)聯(lián)函數(shù) 119
9.7.1 讓Lambda表達(dá)式內(nèi)聯(lián)進(jìn)
函數(shù) 119
9.7.2 內(nèi)聯(lián)部分Lambda表達(dá)式 121
9.7.3非局部返回
(Non-local return) 124
9.7.4 實體化的類型參數(shù)
(Reified type parameter) 125
9.7.5 內(nèi)聯(lián)屬性 126
9.8 小結(jié) 127
第10章 其他Kotlin技術(shù)(1) 128
10.1數(shù)據(jù)解構(gòu) 128
10.2集合 130
10.3值范圍 132
10.3.1 值范圍的應(yīng)用 132
10.3.2 值范圍的工作原理 134
10.3.3 常用工具函數(shù) 135
10.4 類型檢查與類型轉(zhuǎn)換 136
10.4.1 is與!is操作符 136
10.4.2 智能類型轉(zhuǎn)換 138
10.4.3強(qiáng)行類型轉(zhuǎn)換 139
10.5 this表達(dá)式 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 小結(jié) 149
第11章 其他Kotlin技術(shù)(2) 150
11.1 null值安全性 150
11.1.1 可為null的類型與不可為null
的類型 150
11.1.2 在條件語句中進(jìn)行null檢查 151
11.1.3 安全調(diào)用操作符 152
11.1.4 Elvis操作符 152
11.1.5 !!操作符 153
11.1.6 安全的類型轉(zhuǎn)換 153
11.1.7 可為null的類型構(gòu)成的集合 153
11.2 異常類 153
11.3 注解(Annotations) 155
11.3.1 使用注解 156
11.3.2 注解類的構(gòu)造器 157
11.3.3 Lambda表達(dá)式 158
11.4 反射(Reflection) 158
11.4.1 類引用(Class Reference) 159
11.4.2 枚舉類成員 159
11.4.3 動態(tài)調(diào)用成員函數(shù) 161
11.4.4 動態(tài)調(diào)用成員屬性 161
11.5 小結(jié) 163
第12章 Android的窗口——Activity 164
12.1 什么是Activity 164
12.2 Activity的基本用法 164
12.2.1 創(chuàng)建一個不包含任何Activity
的Android工程 165
12.2.2 手動創(chuàng)建Activity 167
12.2.3 創(chuàng)建和加載布局 168
12.2.4 在AndroidManifest文件中注冊
Activity 172
12.2.5 編譯和運(yùn)行Android工程 172
12.2.6 為Activity添加新組件 173
12.2.7為Activity添加邏輯代碼 174
12.2.8 為Activity添加Toast 175
12.2.9 關(guān)閉Activity 178
12.3 使用Intent連接多個Activity 178
12.3.1使用顯式Intent 179
12.3.2 使用隱式Intent 182
12.3.3為隱式Intent設(shè)置更多的過濾
條件 185
12.3.4 使用隱式Intent訪問
系統(tǒng)App 187
12.4 向Activity中傳遞數(shù)據(jù) 189
12.5 從Activity返回數(shù)據(jù) 191
12.6 Activity的生命周期 192
12.7 記錄當(dāng)前活動的Activity 196
12.8 小結(jié) 197
第13章 Android App的裝飾工具——
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 進(jìn)度條組件(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 小結(jié) 230
第14章 長期保存數(shù)據(jù)的方式——
持久化技術(shù) 231
14.1 SharedPreferences存儲 231
14.1.1將數(shù)據(jù)存儲到SharedPreferences
中 231
14.1.2從SharedPreferences讀取
數(shù)據(jù) 234
14.1.3利用SharedPreferences存取用戶名
和密碼 235
14.2 文件流操作 239
14.2.1 openFileOutput和openFileInput
方法 239
14.2.2 讀寫SD卡上的文件 242
14.3 App權(quán)限的授予和拒絕 248
14.4 讀寫JSON格式的數(shù)據(jù) 250
14.5 SQLite數(shù)據(jù)庫 257
14.5.1 SQLite數(shù)據(jù)庫管理
工具 257
14.5.2 創(chuàng)建SQLite數(shù)據(jù)庫和
數(shù)據(jù)表 261
14.5.3 向SQLite數(shù)據(jù)表中插入
數(shù)據(jù) 264
14.5.4 刪除SQLite數(shù)據(jù)表中的
數(shù)據(jù) 265
14.5.5 更新SQLite數(shù)據(jù)表中的
數(shù)據(jù) 266
14.5.6 查詢SQLite表中的數(shù)據(jù) 267
14.5.7 將數(shù)據(jù)庫與App一起
268
14.6 小結(jié) 270
第15章 連接外部世界——網(wǎng)絡(luò)技術(shù) 271
15.1 WebView組件 271
15.2 使用HTTP與服務(wù)端進(jìn)行交互 273
15.2.1 使用HttpURLConnection 273
15.2.2 使用OkHttp 276
15.3 小結(jié) 282
第16章 項目實戰(zhàn)——歐瑞天氣App 283
16.1 項目概述 283
16.2 添加依賴 284
16.3 實現(xiàn)主窗口 285
16.4 顯示地區(qū)列表 286
16.4.1 描述城市信息的數(shù)據(jù)類 286
16.4.2 處理JSON格式的城市列表
信息 286
16.4.3 天氣信息描述類 288
16.4.4 獲取城市信息的對象 290
16.4.5 在ListView組件中顯示地區(qū)
列表 293
16.5 顯示天氣信息 298
16.6 小結(jié) 303
很贊的一本書,里面有視頻有題庫,銷售不錯~~~
好好補(bǔ)充新知識