Kotlin從小白到大牛 ( 簡體 字) |
作者:關東升 | 類別:1. -> 程式設計 -> 手機程式 -> Kotlin |
譯者: |
出版社:清華大學出版社 | 3dWoo書號: 49903 詢問書籍請說出此書號!【缺書】 NT售價: 640 元 |
出版日:9/1/2018 |
頁數:545 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787302505310 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:推 薦 序 人類歷史從古今一轍發展到現在已是日新月異,科技正在為這個世界勾勒更加絢麗的未來。這其中離不開人類與計算機之間溝通的藝術。憑借一行行的代碼、一串串的字符,交流不再受到語言的限制、不再受到空間的阻隔,計算機語言的魅力隨著時代的發展體現得淋漓盡致。 JetBrains致力于為開發者打造智能的開發工具,讓計算機語言交流也能夠輕松自如。歷經15年的不斷創新,JetBrains始終在不斷完善我們的平臺,以滿足最頂尖的開發需要。 在全球,JetBrains的平臺備受數百萬開發者的青睞,深入各行各業見證著他們的創新與突破。在JetBrains,我們始終追求為開發者簡化復雜的項目,自動完成那些簡單的部分,讓開發者能夠最大程度專注于代碼的設計和全局的構建。 JetBrains提供一流的工具,用來幫助開發者打造完美的代碼。為了展現每一種語言獨特的一面,我們的IDE致力于為開發者提供如下產品:Java (IntelliJ IDEA)、C/C++ (CLion)、Python (PyCharm)、PHP (PhpStorm)、.NET跨平臺 (ReSharper, Rider),并提供相關的團隊項目追蹤、代碼審查等工具。不僅如此,JetBrains還創造了自己的語言Kotlin,讓程序的邏輯和含義更加清晰。 與此同時,JetBrains還為開源項目、教育行業和社區提供了獨特的免費版本。這些版本不僅適用于專業的開發者,滿足相關的開發需求。同時也能夠使初學者易于上手,由淺入深地使用計算機語言交互溝通。 2018年,JetBrains將同清華大學出版社一道,策劃一套涉及上述產品與技術的高水平圖書,也希望通過這套叢書,讓更廣泛的讀者體會到JetBrains的平臺協助編程的無窮魅力。 期待更多的讀者能夠擁抱高效開發,發揮最大的創造潛力。 讓未來在你的指尖跳動! JetBrains大中華區市場經理 趙 磊 |
內容簡介:本書是一部系統論述Kotlin編程語言、面向對象編程方法以及函數式編程思想的立體化教程(含紙質圖書、電子書、教學課件、源代碼與視頻教程)。全書共分為5篇:第1篇Kotlin基礎(第1章∼第10章),第2篇面向對象(第11章∼第13章),第3篇函數式編程(第14章∼第17章),第4篇Kotlin進階(第18章∼第27章),第5篇項目實戰(第28章∼第29章)。主要內容包括:開篇綜述;開發環境搭建;第一個Kotlin程序;Kotlin語法基礎;Kotlin編碼規范;數據類型;字符串;運算符;程序流程控制;函數;面向對象編程;繼承與多態;抽象類與接口;函數式編程基石——高階函數和Lambda表達式;泛型;數據容器——數組和集合;Kotlin中函數式編程API;異常處理;線程;協程;Kotlin與Java混合編程;Kotlin I/O與文件管理;網絡編程;Kotlin與Java Swing圖形用戶界面編程;輕量級SQL框架——Exposed;反射;注解。最后給出了兩個項目設計案例,項目實戰1:開發PetStore寵物商店項目;項目實戰2:開發Kotlin版QQ2006聊天工具。 為便于讀者快速掌握Kotlin編程方法,本書作者精心制作了電子書、完整的教學課件、完整的源代碼與豐富的配套視頻教程,并提供在線答疑服務。 |
目錄:推薦序 1 前言 3 配套資源說明 6 學習路線圖 7 內容說明 9 第1篇Kotlin基礎 本篇視頻:454分鐘 第1章開篇綜述 2 本章視頻:33分鐘 1.1Kotlin語言簡介 2 1.1.1Kotlin語言歷史 2 1.1.2Kotlin語言設計目標 2 1.2Kotlin語言特點 3 1.3Kotlin與Java虛擬機 4 1.3.1Java虛擬機 4 1.3.2Kotlin應用程序運行過程 5 1.4如何獲得幫助 5 第2章開發環境搭建 8 本章視頻:25分鐘 2.1JDK工具包 8 2.1.1JDK下載和安裝 8 2.1.2設置環境變量 10 2.2IntelliJIDEA開發工具 12 2.3Eclipse開發工具 13 2.3.1Eclipse下載和安裝 13 2.3.2安裝Kotlin插件 17 2.4Kotlin編譯器 18 2.4.1下載Kotlin編譯器 18 2.4.2設置Kotlin編譯器環境變量 19 2.5文本編輯工具 20 2.5.1在SublimeText中安裝Kotlin語言包 20 2.5.2SublimeText與Kotlin編譯器集成 21 第3章第一個Kotlin程序 25 本章視頻:22分鐘 3.1使用REPL實現 25 3.2使用IntelliJIDEA實現 26 3.2.1創建項目 26 3.2.2創建Kotlin源代碼文件 28 3.2.3編寫代碼 29 3.2.4運行程序 30 3.3使用IntelliJIDEA與Gradle實現 30 3.4使用Eclipse與Kotlin插件實現 33 3.4.1創建項目 33 3.4.2創建Kotlin源代碼文件 34 3.4.3運行程序 35 3.5使用文本編輯工具與Kotlin編譯器實現 37 3.5.1編寫代碼 37 3.5.2編譯程序 37 3.5.3運行程序 39 3.6代碼解釋 39 第4章Kotlin語法基礎 41 本章視頻:52分鐘 4.1標識符和關鍵字 41 4.1.1標識符 41 4.1.2關鍵字 42 4.2變量和常量 43 4.2.1變量 43 4.2.2常量和只讀變量 44 4.2.3使用var還是val 45 4.3注釋 46 4.4語句與表達式 47 4.4.1語句 48 4.4.2表達式 48 4.5包 49 4.5.1包的作用 49 4.5.2包的定義 50 4.5.3包的引入 51 第5章Kotlin編碼規范 53 本章視頻:49分鐘 5.1命名規范 53 5.2注釋規范 55 5.2.1文件注釋 55 5.2.2文檔注釋 55 5.2.3代碼注釋 58 5.2.4使用地標注釋 59 5.3聲明 60 5.3.1變量或常量聲明 60 5.3.2類聲明 61 5.4代碼排版 62 5.4.1空行 62 5.4.2空格 64 5.4.3縮進 65 5.4.4斷行 65 5.5省略規范 66 第6章數據類型 68 本章視頻:45分鐘 6.1回顧Java數據類型 68 6.2Kotlin基本數據類型 69 6.2.1整型類型 70 6.2.2浮點類型 71 6.2.3字符類型 72 6.2.4布爾類型 74 6.3數值類型之間的轉換 75 6.3.1賦值與顯式轉換 75 6.3.2數學計算與隱式轉換 77 6.4可空類型 77 6.4.1可空類型概念 78 6.4.2使用安全調用運算符(?.) 78 6.4.3非空斷言運算符(!!) 79 6.4.4使用Elvis運算符(?:) 80 第7章字符串 82 本章視頻:93分鐘 7.1字符串字面量 82 7.1.1普通字符串 82 7.1.2原始字符串 83 7.2不可變字符串 85 7.2.1String 85 7.2.2字符串拼接 86 7.2.3字符串模板 87 7.2.4字符串查找 89 7.2.5字符串比較 91 7.2.6字符串截取 93 7.3可變字符串 94 7.3.1StringBuilder 94 7.3.2字符串追加、插入、刪除和替換 95 7.4正則表達式 97 7.4.1Regex類 97 7.4.2字符串匹配 98 7.4.3字符串查找 99 7.4.4字符串替換 99 7.4.5字符串分割 100 第8章運算符 102 本章視頻:51分鐘 8.1算術運算符 102 8.1.1一元運算符 102 8.1.2二元運算符 103 8.1.3算術賦值運算符 104 8.2關系運算符 105 8.3邏輯運算符 107 8.4位運算符 108 8.5其他運算符 111 8.6運算符優先級 111 第9章程序流程控制 113 本章視頻:47分鐘 9.1if分支結構 113 9.1.1if結構當作語句使用 113 9.1.2if表達式 115 9.2when多分支結構 117 9.2.1when結構當作語句使用 118 9.2.2when表達式 119 9.3循環結構 121 9.3.1while語句 121 9.3.2do-while語句 122 9.3.3for語句 122 9.4跳轉語句 124 9.4.1break語句 124 9.4.2continue語句 126 9.5使用區間 128 9.5.1表示區間 128 9.5.2使用in和!in關鍵字 129 第10章函數 131 本章視頻:37分鐘 10.1函數聲明 131 10.2返回特殊數據 132 10.2.1無返回數據與Unit類型 132 10.2.2永遠不會正常返回數據與Nothing類型 133 10.3函數參數 134 10.3.1使用命名參數調用函數 134 10.3.2參數默認值 135 10.3.3可變參數 136 10.4表達式函數體 137 10.5局部函數 137 10.6匿名函數 138 第2篇面向對象 本篇視頻:360分鐘 第11章面向對象編程 142 本章視頻:246分鐘 11.1面向對象概述 142 11.2面向對象的三個基本特性 143 11.2.1封裝性 143 11.2.2繼承性 143 11.2.3多態性 144 11.3類聲明 144 11.4屬性 146 11.4.1回顧JavaBean 146 11.4.2聲明屬性 147 11.4.3延遲初始化屬性 150 11.4.4委托屬性 151 11.4.5惰性加載屬性 152 11.4.6可觀察屬性 153 11.5擴展 154 11.5.1擴展函數 155 11.5.2擴展屬性 156 11.5.3“成員優先”原則 157 11.5.4定義中綴運算符 159 11.6構造函數 160 11.6.1主構造函數 160 11.6.2次構造函數 162 11.6.3默認構造函數 163 11.7封裝性與可見性修飾符 164 11.7.1可見性范圍 164 11.7.2公有可見性 166 11.7.3內部可見性 167 11.7.4保護可見性 167 11.7.5私有可見性 168 11.8數據類 169 11.8.1聲明數據類 170 11.8.2使用copy函數 171 11.8.3解構數據類 172 11.9枚舉類 172 11.9.1聲明枚舉類 172 11.9.2枚舉類構造函數 174 11.9.3枚舉常用屬性和函數 175 11.10嵌套類 176 11.10.1嵌套類 176 11.10.2內部類 178 11.11強大的object關鍵字 180 11.11.1對象表達式 180 11.11.2對象聲明 182 11.11.3伴生對象 184 第12章繼承與多態 188 本章視頻:78分鐘 12.1Kotlin中的繼承 188 12.2調用父類構造函數 190 12.2.1使用主構造函數 191 12.2.2使用次構造函數重載 192 12.2.3使用參數默認值調用構造函數 193 12.3重寫成員屬性和函數 194 12.3.1重寫成員屬性 194 12.3.2重寫成員函數 195 12.4多態 197 12.4.1多態概念 197 12.4.2使用is和!is進行類型檢查 199 12.4.3使用as和as?進行類型轉換 202 12.5密封類 203 第13章抽象類與接口 206 本章視頻:36分鐘 13.1抽象類 206 13.1.1抽象類概念 206 13.1.2抽象類聲明和實現 206 13.2使用接口 209 13.2.1接口概念 209 13.2.2接口聲明和實現 209 13.2.3接口與多繼承 212 13.2.4接口繼承 213 13.2.5接口中的具體函數和屬性 214 第3篇函數式編程 本篇視頻:302分鐘 第14章函數式編程基石——高階函數和Lambda表達式 218 本章視頻:91分鐘 14.1函數式編程簡介 218 14.2高階函數 218 14.2.1函數類型 219 14.2.2函數字面量 220 14.2.3函數作為另一個函數返回值使用 221 14.2.4函數作為參數使用 222 14.3Lambda表達式 223 14.3.1Lambda表達式標準語法格式 223 14.3.2使用Lambda表達式 225 14.3.3Lambda表達式簡化寫法 225 14.3.4Lambda表達式與return語句 228 14.4閉包與捕獲變量 229 14.5內聯函數 232 14.5.1自定義內聯函數 232 14.5.2使用let函數 233 14.5.3使用with和apply函數 233 第15章泛型 236 本章視頻:51分鐘 15.1泛型函數 236 15.1.1聲明泛型函數 236 15.1.2多類型參數 237 15.1.3泛型約束 237 15.1.4可空類型參數 238 15.2泛型屬性 239 15.3泛型類 240 15.4泛型接口 242 第16章數據容器——數組和集合 245 本章視頻:81分鐘 16.1數組 245 16.1.1對象數組 245 16.1.2基本數據類型數組 248 16.2集合概述 249 16.3Set集合 250 16.3.1不可變Set集合 250 16.3.2可變Set集合 252 16.4List集合 254 16.4.1不可變List集合 255 16.4.2可變List集合 256 16.5Map集合 258 16.5.1不可變Map集合 259 16.5.2可變Map集合 261 第17章Kotlin中函數式編程API 264 本章視頻:79分鐘 17.1函數式編程API與鏈式調用 264 17.2遍歷操作 265 17.2.1forEach 265 17.2.2forEachIndexed 266 17.3三大基礎函數 267 17.3.1filter 267 17.3.2map 268 17.3.3reduce 269 17.4聚合函數 270 17.5過濾函數 272 17.6映射函數 273 17.7排序函數 275 17.8案例:求階乘 276 17.9案例:計算水仙花數 277 第4篇Kotlin進階 本篇視頻:744分鐘 第18章異常處理 280 本章視頻:67分鐘 18.1從一個問題開始 280 18.2異常類繼承層次 281 18.2.1Throwable類 281 18.2.2Error和Exception 283 18.3捕獲異常 283 18.3.1try-catch語句 284 18.3.2try-catch表達式 285 18.3.3多catch代碼塊 286 18.3.4try-catch語句嵌套 288 18.4釋放資源 289 18.4.1finally代碼塊 290 18.4.2自動資源管理 293 18.5throw與顯式拋出異常 294 第19章線程 297 本章視頻:49分鐘 19.1基礎知識 297 19.1.1進程 297 19.1.2線程 297 19.1.3主線程 298 19.2創建線程 299 19.3線程狀態 301 19.4線程管理 302 19.4.1等待線程結束 302 19.4.2線程讓步 304 19.4.3線程停止 305 第20章協程 308 本章視頻:57分鐘 20.1協程介紹 308 20.2創建協程 308 20.2.1Kotlin協程API 308 20.2.2創建支持kotlinx.coroutines的項目 309 20.2.3第一個協程程序 310 20.2.4launch函數與Job對象 311 20.2.5runBlocking函數 313 20.2.6掛起函數 314 20.3協程生命周期 316 20.4管理協程 317 20.4.1等待協程結束 317 20.4.2超時設置 318 20.4.3取消協程 320 第21章Kotlin與Java混合編程 322 本章視頻:77分鐘 21.1數據類型映射 322 21.1.1Java基本數據類型與Kotlin數據類型映射 322 21.1.2Java包裝類與Kotlin數據類型映射 322 21.1.3Java常用類與Kotlin數據類型映射 323 21.1.4Java集合類型與Kotlin數據類型映射 323 21.2Kotlin調用Java 324 21.2.1避免Kotlin關鍵字 324 21.2.2平臺類型與空值 325 21.2.3異常檢查 327 21.2.4調用Java函數式接口 327 21.3Java調用Kotlin 328 21.3.1訪問Kotlin屬性 329 21.3.2訪問包級別成員 329 21.3.3實例字段、靜態字段和靜態函數 330 21.3.4可見性 334 21.3.5生成重載函數 336 21.3.6異常檢查 338 第22章KotlinI/O與文件管理 340 本章視頻:49分鐘 22.1JavaI/O流概述 340 22.1.1Java流設計理念 340 22.1.2Java流類繼承層次 341 22.2字節流 343 22.2.1InputStream抽象類 344 22.2.2OutputStream抽象類 344 22.2.3案例:文件復制 345 22.3字符流 346 22.3.1Reader抽象類 346 22.3.2Writer抽象類 346 22.3.3案例:文件復制 347 22.4文件管理 348 22.4.1File類擴展函數 348 22.4.2案例:讀取目錄文件 349 第23章網絡編程 351 本章視頻:115分鐘 23.1網絡基礎 351 23.1.1網絡結構 351 23.1.2TCP/IP協議 352 23.1.3IP地址 352 23.1.4端口 353 23.2TCPSocket低層次網絡編程 353 23.2.1TCPSocket通信概述 353 23.2.2TCPSocket通信過程 353 23.2.3Socket類 354 23.2.4ServerSocket類 356 23.2.5案例:文件上傳工具 356 23.3UDPSocket低層次網絡編程 358 23.3.1DatagramSocket類 358 23.3.2DatagramPacket類 359 23.3.3案例:文件上傳工具 360 23.4數據交換格式 362 23.4.1JSON文檔結構 363 23.4.2使用第三方JSON庫 365 23.4.3JSON數據編碼和解碼 366 23.5訪問互聯網資源 368 23.5.1URL的概念 368 23.5.2HTTP/HTTPS協議 369 23.5.3使用URL類 369 23.5.4使用HttpURLConnection發送GET請求 370 23.5.5使用HttpURLConnection發送POST請求 372 23.5.6實例:Downloader 373 第24章Kotlin與JavaSwing圖形用戶界面編程 375 本章視頻:182分鐘 24.1Java圖形用戶界面技術 375 24.2Swing技術基礎 376 24.2.1Swing類層次結構 377 24.2.2Swing程序結構 378 24.3事件處理模型 381 24.3.1內部類和對象表達式處理事件 382 24.3.2Lambda表達式處理事件 384 24.3.3使用適配器 385 24.4布局管理 387 24.4.1FlowLayout布局 387 24.4.2BorderLayout布局 389 24.4.3GridLayout布局 391 24.4.4不使用布局管理器 393 24.5Swing組件 395 24.5.1標簽和按鈕 395 24.5.2文本輸入組件 398 24.5.3復選框和單選按鈕 401 24.5.4下拉列表 404 24.5.5列表 406 24.5.6分隔面板 407 24.5.7使用表格 409 24.6案例:圖書庫存 413 第25章輕量級SQL框架——Exposed 418 本章視頻:91分鐘 25.1MySQL數據庫管理系統 418 25.1.1數據庫安裝與配置 418 25.1.2連接MySQL服務器 422 25.1.3常見的管理命令 425 25.2Kotlin與DSL語言 429 25.3使用Exposed框架 430 25.3.1配置項目 430 25.3.2面向DSLAPI 431 25.3.3面向對象API 434 25.4案例:多表連接查詢操作 436 25.4.1創建數據庫 437 25.4.2配置SQL日志 438 25.4.3實現查詢 438 第26章反射 442 本章視頻:34分鐘 26.1Kotlin反射API 442 26.2引用類 443 26.3調用函數 445 26.4調用構造函數 446 26.5調用屬性 448 第27章注解 451 本章視頻:23分鐘 27.1元注解 451 27.2自定義注解 453 27.2.1聲明注解 453 27.2.2案例:使用元注解 454 27.2.3注解目標聲明 456 27.2.4案例:讀取運行時注解信息 457 第5篇項目實戰 本篇視頻:621分鐘 第28章項目實戰1:開發PetStore寵物商店項目 460 本章視頻:309分鐘 28.1系統分析與設計 460 28.1.1項目概述 460 28.1.2需求分析 461 28.1.3原型設計 461 28.1.4數據庫設計 463 28.1.5架構設計 465 28.1.6系統設計 466 28.2任務1:創建數據庫 467 28.2.1迭代1.1:安裝和配置MySQL數據庫 467 28.2.2迭代1.2:編寫數據庫DDL腳本 467 28.2.3迭代1.3:插入初始數據到數據庫 468 28.3任務2:初始化項目 469 28.3.1迭代2.1:配置項目 469 28.3.2迭代2.2:添加資源圖片 470 28.3.3迭代2.3:添加包 471 28.4任務3:編寫數據持久層代碼 471 28.4.1迭代3.1:編寫實體類 471 28.4.2迭代3.2:創建數據表類 474 28.4.3迭代3.3:編寫DAO類 475 28.5任務4:編寫表示層代碼 483 28.5.1迭代4.1:編寫啟動類 483 28.5.2迭代4.2:編寫自定義窗口類——MyFrame 483 28.5.3迭代4.3:用戶登錄窗口 485 28.5.4迭代4.4:商品列表窗口 487 28.5.5迭代4.5:商品購物車窗口 495 28.6任務5:應用程序打包發布 503 28.6.1迭代5.1:處理TODO和FIXME任務 503 28.6.2迭代5.2:打包 503 第29章項目實戰2:開發Kotlin版QQ2006聊天工具 507 本章視頻:312分鐘 29.1系統分析與設計 507 29.1.1項目概述 507 29.1.2需求分析 508 29.1.3原型設計 509 29.1.4數據庫設計 509 29.1.5網絡拓撲圖 512 29.1.6系統設計 512 29.2任務1:創建服務器端數據庫 513 29.2.1迭代1.1:安裝和配置MySQL數據庫 513 29.2.2迭代1.2:編寫數據庫DDL腳本 514 29.2.3迭代1.3:插入初始數據到數據庫 514 29.3任務2:初始化項目 515 29.3.1任務2.1:配置項目 515 29.3.2任務2.2:添加資源圖片 516 29.3.3任務2.3:添加包 517 29.4任務3:編寫服務器端外圍代碼 517 29.4.1任務3.1:創建數據表類 517 29.4.2任務3.2:編寫UserDAO類 518 29.4.3任務3.3:編寫ClientInfo類 521 29.5任務4:客戶端UI實現 521 29.5.1迭代4.1:登錄窗口實現 521 29.5.2迭代4.2:好友列表窗口實現 525 29.5.3迭代4.3:聊天窗口實現 529 29.6任務5:用戶登錄過程實現 533 29.6.1迭代5.1:客戶端啟動 533 29.6.2迭代5.2:客戶端登錄編程 535 29.6.3迭代5.3:服務器啟動 538 29.6.4迭代5.4:服務器驗證編程 539 29.7任務6:刷新好友列表 541 29.7.1迭代6.1:刷新好友列表服務器端編程 542 29.7.2迭代6.2:刷新好友列表客戶端編程 543 29.8任務7:聊天過程實現 547 29.8.1迭代7.1:客戶端用戶1向用戶3發送消息 548 29.8.2迭代7.2:服務器接收用戶1消息與轉發給用戶3消息 549 29.8.3迭代7.3:客戶端用戶3接收用戶1消息 551 29.9任務8:用戶下線 552 29.9.1迭代8.1:客戶端編程 553 29.9.2迭代8.2:服務器端編程 554 |
序: |