-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

瘋狂Kotlin講義

( 簡體 字)
作者:李剛類別:1. -> 程式設計 -> 手機程式 -> Kotlin
譯者:
出版社:電子工業出版社瘋狂Kotlin講義 3dWoo書號: 48381
詢問書籍請說出此書號!

缺書
NT售價: 345

出版日:1/1/2018
頁數:324
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121334597
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

Kotlin是JetBrains在2011年推出的一門全新的編程語言,這門語言最早被設計成運行在JVM上——使用Kotlin編寫的程序會被編譯成字節碼文件,該字節碼文件可直接在JVM上運行(用java命令運行即可)。Kotlin可以與現有的Java語言包保持完全兼容,而且Kotlin代碼比Java代碼更簡潔。Kotlin增加了擴展、對象表達式、對象聲明、委托等Java原本不支持的功能,它們都是現代編程語言廣泛支持的功能,并且完全可以在JVM上運行。
簡單來說,Kotlin既可利用Java的優勢,又比Java更簡潔。
Kotlin與現有的Java語言包保持完全兼容,這意味著Kotlin不是一門簡單的語言,它完全可以利用Java領域現有的各種工具和框架,如Spring、Hibernate、MyBatis、Lucene、Hadoop、Spring Cloud等。Kotlin可以直接使用它們,因此現有的Java項目完全可以采用Kotlin開發,Java開發者也很容易過渡到Kotlin。
不得不說的一點是,目前Android已推薦使用Kotlin作為官方開發語言,這意味著Kotlin將會在Android開發上大放異彩,這也是筆者決定向大家介紹這門語言的重要原因之一。
此外,Kotlin程序還可直接編譯生成JavaScript代碼,Kotlin程序既可編譯成前端JavaScript代碼,用于實現網頁的DOM操作,實現前端編程;也可編譯成后端JavaScript代碼,與服務端技術(如Node.js)交互。
需要指出的是,雖然Kotlin提供了簡潔的語法,但Kotlin的功能并不簡單,Kotlin從來就不是為了更簡單而設計的,而是為了更強大而設計的。Kotlin既支持函數式編程方式,也支持面向對象編程方式。Kotlin的函數式編程方式完全支持主流的函數和閉包,語法功能非常豐富。
可以這么說:Java支持的各種語法功能,Kotlin基本都支持;Java不支持的很多現代編程語言所具有的特征,Kotlin也支持,因此Kotlin絕不比Java更簡單。如果讀者相信網絡上某些所謂“大神”膚淺的結論:Kotlin很簡單,那么我建議你放棄閱讀這本書。
本書有什么特點
本書對Kotlin的解讀十分全面、深入,并非一本簡單介紹Kotlin語法的圖書,在很多地方都會結合Java語法、底層字節碼進行講解。如果讀者有較好的Java功底,閱讀本書能更清晰地看清Java與Kotlin之間的差異,便于快速上手Kotlin;對于沒有Java功底的讀者,可選擇忽略將二者進行對比的部分,直接學習本書也可掌握Kotlin語言的編程。
由于Kotlin最先被設計成運行在JVM平臺上的編程語言,因此Kotlin具有和Java天然的相似性,但在Java設計不足的地方又做了大量的補充、改進,所以本書也能讓你更好地理解Java,以及更好地理解Java存在的一些不足。這樣說并不代表Java不優秀,“知其雄,守其雌,為天下谿”,只有深入理解Java,才能更好地感悟Java的優秀。
總結起來,本書有如下幾個特點。
1.邏輯結構更合理
本書在內容體系上將函數式編程和面向對象編程獨立開來,先介紹函數式編程部分,再介紹面向對象編程,更符合Kotlin語言本身的知識體系。而不像某些資料一會兒函數,一會兒面向對象,攪得讀者暈頭轉向。實際上,無論是經典的圖書如《C++ Primer》,還是Swift官方文檔(甚至Kotlin官方文檔),幾乎都沒見過一會兒函數、一會兒面向對象這樣介紹的。
在介紹知識時,本書會先詳細講解各種知識點的理論,然后再通過示例演示Kotlin各理論的用法,將知識點融合在示例中,符合讀者的認知、學習規律。
另外,整本書的知識具有和《瘋狂Java講義》大致相同的脈絡,所以《瘋狂Java講義》的讀者會很容易上手。
2.講解深入本質
Kotlin是JVM語言,所以其很多東西其實是受到Java的影響的。書中會對一些看似奇怪的語法從字節碼文件層次進行剖析,讓讀者更好地理解Kotlin與Java的對應關系。
比如,主構造器和次構造器到底是什么?Java構造器并不區分主次,為什么Kotlin搞出這兩個東西?主、次構造器為何要委托父類構造器?委托父類構造器時為什么存在區別?主、次構造器生成字節碼之后到底對應Java的哪個部分?這些知識在本書7.5節有深入講解。
再比如,Java本身不支持擴展,那么Kotlin的擴展是如何在JVM上運行的?難道Kotlin改造了JVM嗎?Java本身不支持擴展,那么Java是否可以調用Kotlin擴展的成員?這些問題需要從字節碼層次進行剖析,本書在8.1節有深入講解。
還有,Java泛型的上限、下限的本質是什么?Kotlin泛型的聲明處型變和使用處型變的本質是什么?與Java的對應關系是怎樣的?Java本身并不支持聲明處型變,那為何JVM能支持Kotlin的聲明處型變?這些問題可以在本書第11章中找到答案。
3.知識內容更全面
本書內容超過Kotlin官方文檔本身所覆蓋的知識,比如介紹反射的章節就超過了Kotlin官方文檔內容。本書反射部分不僅更詳細地介紹如何獲得類、函數、屬性的引用,而且真正從API級別介紹KClass、KCallable、KFunction、KProperty,KProperty0、KProperty1、KProperty2的用法,以及它們的內在關聯,并實實在在地教讀者掌握如何用Kotlin反射動態創建對象、動態調用方法。
本書寫給誰看
本書為所有打算深入掌握Kotlin編程的讀者而編寫,尤其適合從Java轉Kotlin的學習者和開發者閱讀,也適合作為大學教育、培訓機構的Kotlin教材。


2017-12-3
內容簡介:

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的圖書。如果讀者在閱讀本書時遇到了技術問題,可以登錄瘋狂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
序: