發表於2024-12-04
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 電子書 格式
瘋狂Kotlin講義 下載 mobi pdf epub txt 電子書 格式 2024
瘋狂Kotlin講義 下載 mobi epub pdf 電子書真的是很厚,看我能不能看完,如果看完瞭的話,我想那我就應該對這個java有點瞭解瞭
評分書很厚,紙張質量不錯,字跡清晰,用來重溫java知識,希望能夠把一些細小的知識點都弄清楚。
評分還不錯。有點貴
評分很不錯,絕對正版,優惠活動價格很美麗
評分瘋狂係列一直不錯,適閤初學者,很詳細!
評分很不錯,絕對正版,優惠活動價格很美麗
評分看瞭眼目錄很詳細,也有不少小疑問的解答,應該是本不錯的書
評分還可以講的很細,拓展深度也可以
評分超級給力的圖書活動。正好需要買書,就有京東的活動。太給力瞭!買到心儀的書,真是開心的事。
瘋狂Kotlin講義 mobi epub pdf txt 電子書 格式下載 2024