瘋狂Kotlin講義

瘋狂Kotlin講義

《瘋狂Kotlin講義》是2018年電子工業出版社出版的圖書,作者是李剛。

基本介紹

  • 書名:瘋狂Kotlin講義
  • 作者:李剛
  • 譯者:李剛
  • ISBN:9787121334597
  • 出版社:電子工業出版社
  • 出版時間:2018-01
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

Kotlin是JetBrains在2011年推出的一門全新的程式語言,這門語言最早被設計成運行在JVM上——使用Kotlin編寫的程式會被編譯成位元組碼檔案,該位元組碼檔案可直接在JVM上運行(用java,命令運行)。目前Google已推薦使用Kotlin作為Android的官方開發語言,這意味著Kotlin將會在Android開發上大放異彩。本書全面介紹了Kotlin的語法。從各平台上Kotlin程式的編譯、運行開始介紹,詳細介紹了Kotlin的基本語法,Kotlin的數組和集合,Kotlin函式式編程特徵,Kotlin的面向對象編程、異常處理、泛型和註解,還介紹了Kotlin與Java混合調用的相關內容,以及Kotlin反射相關內容。本書對Kotlin的解讀十分系統、全面,超過Kotlin官方文檔本身覆蓋的內容。本書很多地方都會結合Java位元組碼進行深入解讀,比如對Kotlin擴展的解讀,對Kotlin主、次構造器的解讀,這種解讀目的不止於教會讀者簡單地掌握Kotlin的用法,而是力求讓讀者深入理解Kotlin,且更好地理解Java。簡單來說,本書不僅是一本Kotlin的學習圖書,而且也是一本能讓你更深入地理解Java的圖書。

圖書目錄

第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

相關詞條

熱門詞條

聯絡我們