作 者:黑馬程序員 著
定 價:59.8
出 版 社:人民郵電出版社
出版日期:2019年03月01日
頁 數:284
裝 幀:平裝
ISBN:9787115494405
1.本書從基礎入門開始,帶領讀者逐步學習Kotlin的相關技術,最後以遊戲開發案例貫穿全書;2.全書配套教學視頻,幫助讀者全面掌握相關內容。
●第1章 Kotlin入門 11.1 Kotlin簡介 11.1.1 Kotlin的前景 11.1.2 Kotlin的特性 21.2 Kotlin開發環境搭建 31.2.1 Kotlin常用開發工具 31.2.2 IntelliJ IDEA的安裝 31.3 開發第一個Kotlin程序 61.4 本章小結 10第2章 Kotlin編程基礎 112.1 Kotlin的基本語法 112.1.1 Kotlin代碼的基本格式 112.1.2 Kotlin中的注釋 122.2 Kotlin中的變量 132.2.1 變量的定義 132.2.2 變量的數據類型 142.3 運算符 162.3.1 算術運算符 162.3.2 賦值運算符 172.3.3 比較運算符 182.3.4 邏輯運算符 182.4 字符串 192.4.1 字符串的定義 192.4.2 字符串的常見操作 202.5 選擇結構語句 252.5.1 if條件語句 262.5.2 when條件語句 302.6 循環結構語句 322.6.1 while循環語句 322.6.2 do...while循環語句 332.6.3 for循環語句 342.6.4 循環嵌套 352.6.5 forEach循環語句 362.6.6 跳轉語句(continue、break) 372.7 區間 392.7.1 正向區間 392.7.2 逆向區間 402.7.3 步長 402.8 數組 412.8.1 數組的定義 412.8.2 數組的常見操作 432.9 變量的類型轉換 472.9.1 類型檢查 472.9.2 智能類型轉換 472.9.3 強制類型轉換 482.10 空值處理 492.10.1 可空類型變量( ) 492.10.2 安全調用符( .) 502.10.3 Elvis操作符( :) 502.10.4 非空斷言(!!.) 512.11 本章小結 52第3章 函數 533.1 函數的介紹 533.1.1 函數的定義 533.1.2 函數的類型 543.1.3 單表達式函數 553.1.4 函數的參數 563.2 函數的分類 593.2.1 頂層函數 593.2.2 成員函數 603.2.3 局部函數 613.2.4 遞歸函數 623.2.5 尾遞歸函數 623.2.6 函數重載 643.3 本章小結 65第4章 面向對像 664.1 面向對像的概念 664.2 類與對像 674.2.1 類的定義 674.2.2 對像的創建 674.2.3 類的封裝 684.3 構造函數 694.3.1 主構函數 704.3.2 this關鍵字 704.3.3 次構函數 714.4 類的繼承 724.4.1 類的繼承 724.4.2 方法重寫 734.4.3 super關鍵字 744.5 抽像類和接口 764.5.1 抽像類 764.5.2 接口 774.6 常見類 794.6.1 嵌套類 794.6.2 內部類 804.6.3 枚舉類 804.6.4 密封類 814.6.5 數據類 824.6.6 單例模式 824.6.7 伴生對像 834.7 委托 844.7.1 類委托 844.7.2 屬性委托 854.7.3 延遲加載 874.8 異常 874.8.1 什麼是異常 874.8.2 try...catch和finally 884.8.3 throw關鍵字 914.8.4 受檢異常 924.8.5 自定義異常 934.9 本章小結 95第5章 集合 965.1 集合概述 965.2 List接口 985.2.1 List接口簡介 985.2.2 不可變List 985.2.3 可變 tableList 1015.3 Set接口 1045.3.1 Set接口簡介 1045.3.2 不可變Set 1045.3.3 可變 tableSet 1065.4 Map接口 1075.4.1 Map接口簡介 1075.4.2 不可變Map 1075.4.3 可變 tableMap 1095.5 本章小結 110第6章 Lambda編程 1116.1 Lambda表達式入門 1116.1.1 Lambda表達式簡介 1116.1.2 Lambda表達式返回值 1136.2 高階函數的使用 1146.2.1 函數作為參數使用 1156.2.2 函數作為參數優化 1156.2.3 函數作為返回值 1186.3 標準庫中的高階函數 1196.3.1 高階函數操作集合 1196.3.2 標準庫中的高階函數 1236.4 內聯函數 1276.4.1 使用內聯函數 1276.4.2 禁用內聯函數 1286.5 本章小結 128第7章 泛型 1297.1 泛型的定義 1297.2 泛型的分類 1307.2.1 泛型類 1307.2.2 泛型接口 1317.2.3 泛型方法 1327.3 泛型約束 1337.3.1 泛型約束的必要性 1337.3.2 泛型約束 1347.4 子類和子類型 1367.4.1 繼承與子類型 1367.4.2 接口與子類型 1377.4.3 可空類型的子類型 1377.5 協變與逆變 1397.5.1 協變 1397.5.2 逆變 1407.5.3 點變型 1417.6 泛型擦除與實化類型 1427.6.1 泛型擦除 1427.6.2 泛型通配符 1437.6.3 實化類型 1447.7 本章小結 145第8章 Gradle 1468.1 Gradle簡介 1468.2 Gradle程序 1478.2.1 第一個Gradle程序 1478.2.2 Java代碼與Kotlin代碼共存 1528.3 Gradle的任務 1538.3.1 Gradle中的project和task 1538.3.2 Gradle任務的依賴 1548.3.3 Gradle任務的生命周期 1558.3.4 Gradle任務集 1578.3.5 Gradle默認屬性和任務 1588.3.6 Gradle增量式更新任務 1608.4 Gradle的依賴 1628.4.1 Gradle的依賴包管理 1628.4.2 公共倉庫和依賴配置 1628.5 Gradle擴展 1648.5.1 Gradle插件自定義擴展 1648.5.2 Gradle調用外部擴展 1658.6 本章小結 167第9章 協程 1689.1 協程簡介 1689.1.1 協程概述 1689.1.2 協程的定義 1699.1.3 線程與協程實現對比 1699.2 協程的基本操作 1719.2.1 協程掛起 1719.2.2 掛起函數 1729.2.3 主協程 1729.2.4 協程中的Job任務 1739.2.5 普通線程和守護線程 1759.2.6 線程與協程效率對比 1769.3 協程取消 1779.3.1 協程取消 1779.3.2 協程取消失效 1809.3.3 定時取消 1819.3.4 掛起函數的執行順序 1829.3.5 通過async啟動協程 1839.3.6 協程上下文和調度器 1849.3.7 父子協程 1859.4 管道 1869.4.1 管道簡介 1869.4.2 管道的關閉 1879.4.3 生產者與消費者 1889.4.4 管道緩存區 1899.5 本章小結 190第10章 坦克大戰 19110.1 項目介紹 19110.1.1 項目概述 19110.1.2 開發環境 19110.1.3 效果展示 19210.2 項目搭建 19410.2.1 項目創建 19410.2.2 添加遊戲引擎 19410.3 窗體設計 19610.4 繪素 19810.4.1 繪制牆和草坪 19810.4.2 繪制地圖 19910.4.3 繪制我方坦克 20110.5 我方坦克移動 20410.5.1 坦克的移動 20410.5.2 移動踫撞處理 20510.6 子彈 20910.6.1 繪制子彈 20910.6.2 計算子彈的位置 21010.6.3 子彈飛行 21310.6.4 銷毀脫離窗體的子彈 21410.6.5 子彈的攻與受 21610.6.6 的顯示 22010.7 敵方坦克 22310.7.1 敵方坦克繪制 22310.7.2 敵方坦克的移動 22410.7.3 敵方坦克自動發射子彈 22710.7.4 雙方坦克的相互傷害 22910.8 大本營 23210.8.1 繪制大本營 23210.8.2 實現大本營特性 23410.9 遊戲結束與打包 23610.9.1 遊戲的結束 23610.9.2 Gradle打包遊戲 24010.10 本章小結 242第11章 DSL 24311.1 DSL簡介 24311.1.1 DSL概述 24311.1.2 DSL程序 24411.2 DSL的使用 24611.2.1 打印簡單的HTML標簽 24611.2.2 打印復雜的HTML標簽 24711.3 Anko插件 24911.4 本章小結 250第12章 Kotlin與Java互 操作 25112.1 在Kotlin中調用Java 25112.1.1 調用Java中的getter/setter方法 25112.1.2 調用Java中的@NotNull注解 25212.1.3 調用Java中的靜態成員 25312.1.4 SAM轉換 25412.2 在Java中調用Kotlin 25512.2.1 調用Kotlin中的包級函數 25512.2.2 調用Kotlin中的實例字段 25612.2.3 調用Kotlin中的靜態字段和 方法 25712.2.4 調用Kotlin中的集合類 25812.2.5 顯式申明Kotlin中的異常 25912.2.6 關鍵字衝突的互操作 26012.3 Kotlin與Java中的操作 對比 26112.3.1 語法格式對比 26112.3.2 異常檢查對比 26312.3.3 可變參數對比 26412.3.4 類的class對像對比 26512.3.5 成員控制權限對比 26612.3.6 默認參數函數對比 26712.4 本章小結 268第13章 時鐘 26913.1 時鐘項目簡介 26913.1.1 項目概述 26913.1.2 開發環境 26913.2 創建時鐘項目 27013.2.1 創建項目 27013.2.2 初始化畫布 27113.3 繪素 27313.3.1 繪制直線、三角形、矩形 27313.3.2 繪制圓形 27513.3.3 填充圖形 27613.3.4 繪制文本 27713.4 繪制時鐘 27713.4.1 繪制時鐘的圓環 27713.4.2 繪制60個圓點 27813.4.3 繪制時鐘的數字 27913.4.4 繪制時鐘的指針 28013.4.5 設置當前時間 28313.5 本章小結 284
本書從初學者的角度詳細講解了Kotlin開發中常用的多種技術。全書共13章,內容包括Kotlin入門、Kotlin編程基礎、函數、面向對像、集合、lambda編程、泛型、Gradle、協程、“坦克大戰”遊戲開發、DSL、Kotlin與Java互操作、時鐘。本書通過典型的案例、通俗易懂的語言闡述面向對像中的抽像概念,在集合、Lambda編程、泛型、Gradle、協程等章節中,通過剖析案例、分析代碼結構、解決常見問題等方式,幫助初學者培養良好的編程習慣。第10章運用前幾章的基礎知識實現了一個坦克大戰的遊戲案例開發。第11~13章分別介紹了DSL、Kotlin與Java進行互操作以及通過Kotlin語言實現一個JavaScript語言的時鐘項目,幫助初學者掌握Kotlin語言與Java語言、JavaScript語言的互操作。 本書既可作為高等院校本、專科計算機相關專業的教材,也可作為社會培訓等
黑馬程序員 著
黑馬程序員,傳智播客旗下高端IT教育品牌,成立於2006年,它是由中國Java培訓領軍人張孝祥老師發起,聯合全球*大的中文IT社區CSDN、中關村軟件園共同創辦的一家專業教育機構。辦學至今,我們一直堅守著“為千萬人少走彎路而著書,為中華軟件之崛起而講課”的辦學理念,堅持培養優秀軟件應用工程師的宏偉目標。