本書基于TOPCARES-CDIO工程化教育理念,以“貪吃蛇游戲”作為案例進行項目驅(qū)動,圍繞項目開發(fā)所需知識進行內(nèi)容組織,在保證實用性的同時兼顧知識的系統(tǒng)性。全書共分為 5 個單元,前 4 個單元系統(tǒng)論述了Java基礎(chǔ)語法(包括變量和表達式、程序控制結(jié)構(gòu)、字符串和數(shù)組)、面向?qū)ο蟪绦蛟O(shè)計的概念(包括特征和原則、類定義語法、繼承和多態(tài)、抽象類和接口、枚舉和泛型等)、Java Swing圖形化界面編程技術(shù)、Java常用類(包括正則表達式、集合類、Java I/O、數(shù)據(jù)庫訪問技術(shù)等);第5單元按工程化方式完整實現(xiàn)了“貪吃蛇游戲”的項目,對前面的知識進行了綜合應(yīng)用。本書適合作為高等院校計算機及相關(guān)專業(yè)本科教材,也可作為相關(guān)培訓(xùn)機構(gòu)的培訓(xùn)教材,以及對 Java開發(fā)技術(shù)感興趣人員的參考書。
賀敏,男,副教授,就職于成都東軟學(xué)院,主持"Java語言程序設(shè)計基礎(chǔ)”課程改革與創(chuàng)新研究(省部級),主要教授面向?qū)ο蟪绦蛟O(shè)計等課程
第1單元 Java基礎(chǔ)語法
第1章 緒論 3
1.1 Java概述 3
1.1.1 Java的起源和發(fā)展 3
1.1.2 Java語言特點 4
1.1.3 Java運行機制 5
1.2 面向?qū)ο笏枷?6
1.3 綜合項目概述 6
本章小結(jié) 7
習(xí)題 7
第2章 結(jié)構(gòu)化基礎(chǔ)語法 8
2.1 Java程序組成 8
2.1.1 注釋 9
2.1.2 程序入口點 10
2.1.3 程序組織 10
2.1.4 程序錯誤 11
2.1.5 代碼規(guī)范 12
2.1.6 使用IDE 12
2.2 數(shù)據(jù)類型和變量 14
2.2.1 基本類型和引用類型 14
2.2.2 基本類型 14
2.2.3 變量 16
2.2.4 類型轉(zhuǎn)換 17
2.3 表達式和語句 18
2.3.1 算術(shù)運算 18
2.3.2 關(guān)系運算 19
2.3.3 條件運算 20
2.3.4 賦值運算 21
2.3.5 運算符優(yōu)先級 21
2.3.6 位運算 22
2.3.7 其他運算 23
本章小結(jié) 24
習(xí)題 24
第3章 字符串和數(shù)組 25
3.1 字符串 25
3.1.1 字符串的創(chuàng)建 25
3.1.2 格式化字符串 26
3.1.3 字符串和基本類型轉(zhuǎn)換 26
3.1.4 字符串常用方法 27
3.2 數(shù)組 28
3.2.1 數(shù)組的定義 28
3.2.2 數(shù)組元素的訪問 29
3.2.3 多維數(shù)組 29
本章小結(jié) 29
習(xí)題 29
第4章 程序控制結(jié)構(gòu) 31
4.1 分支結(jié)構(gòu) 31
4.1.1 if-else分支 31
4.1.2 switch分支 34
4.2 循環(huán)結(jié)構(gòu) 35
4.2.1 while循環(huán) 36
4.2.2 do-while循環(huán) 37
4.2.3 for循環(huán) 37
4.3 跳轉(zhuǎn)語句 39
4.3.1 break語句 39
4.3.2 continue語句 40
4.4 遞歸調(diào)用 41
4.5 綜合應(yīng)用 42
4.5.1 二分查找算法 42
4.5.2 九宮算術(shù) 43
4.5.3 Excel地址轉(zhuǎn)換 45
4.5.4 約瑟夫環(huán) 46
4.6 單元項目 48
4.6.1 項目概述 48
4.6.2 設(shè)計與實現(xiàn) 48
本章小結(jié) 50
習(xí)題 51
第2單元 Java面向?qū)ο?
第5章 面向?qū)ο笏枷爰霸瓌t 55
5.1 面向?qū)ο笏枷胩卣?55
5.2 面向?qū)ο笏枷朐瓌t 57
5.3 OOP引例 58
本章小結(jié) 61
習(xí)題 62
第6章 類定義語法 63
6.1 成員訪問控制 63
6.2 數(shù)據(jù)相關(guān)成員 64
6.2.1 成員變量 64
6.2.2 構(gòu)造方法 64
6.2.3 get/set訪問器 65
6.3 方法定義 66
6.3.1 方法構(gòu)成 66
6.3.2 方法重載 69
6.3.3 可變參數(shù) 70
6.4 類成員 71
6.4.1 類和對象 71
6.4.2 類成員定義 72
本章小結(jié) 74
習(xí)題 74
第7章 面向?qū)ο蟾呒壐拍?76
7.1 繼承和多態(tài) 76
7.1.1 繼承 76
7.1.2 對象的類型轉(zhuǎn)換 78
7.1.3 多態(tài) 79
7.1.4 Object類 82
7.2 抽象類和接口 89
7.2.1 抽象類 89
7.2.2 接口 90
7.2.3 抽象類和接口的區(qū)別 92
7.3 內(nèi)部類 94
7.3.1 頂層類成員 94
7.3.2 局部內(nèi)部類 96
7.3.3 內(nèi)部類與多重繼承 97
7.4 枚舉類型 98
7.4.1 枚舉的定義 98
7.4.2 枚舉的實現(xiàn)原理 98
7.4.3 枚舉的使用 100
7.5 泛型編程 102
7.5.1 泛型類型 102
7.5.2 類型擦除 104
7.5.3 類型限制 105
7.5.4 泛型方法 107
7.6 類的組織:包 108
7.6.1 包的概念與意義 108
7.6.2 包的定義與使用 108
7.6.3 靜態(tài)導(dǎo)入 109
7.7 單元項目 109
7.7.1 項目概述 109
7.7.2 設(shè)計與實現(xiàn) 110
本章小結(jié) 117
習(xí)題 117
第3單元 GUI編程
第8章 Java Swing技術(shù) 121
8.1 Swing技術(shù)簡介 121
8.1.1 Swing概述 121
8.1.2 GUI程序的創(chuàng)建 122
8.1.3 窗口坐標體系 124
8.1.4 界面風(fēng)格 124
8.1.5 模式窗口與非模式窗口 125
8.2 常用容器 126
8.2.1 頂層容器 126
8.2.2 中間容器 129
8.3 常用布局 131
8.3.1 BorderLayout邊界布局 131
8.3.2 FlowLayout流式布局 133
8.3.3 CardLayout卡片布局 134
8.3.4 GridLayout網(wǎng)格布局 134
8.3.5 BoxLayout箱式布局 135
8.3.6 GridBagLayout非規(guī)則網(wǎng)格布局 137
8.3.7 絕對布局 140
8.4 事件監(jiān)聽和處理 142
8.4.1 事件處理機制 142
8.4.2 鍵盤事件處理 144
8.4.3 鼠標事件處理 147
8.4.4 窗口事件處理 151
8.5 常用UI元素 153
8.5.1 輔助元素 154
8.5.2 常用組件 156
8.5.3 通用對話框 161
8.5.4 菜單欄 167
8.5.5 系統(tǒng)托盤 169
8.6 自動化任務(wù) 171
8.6.1 模擬鼠標鍵盤 171
8.6.2 屏幕截圖 174
本章小結(jié) 176
習(xí)題 177
第9章 Java繪圖技術(shù) 178
9.1 界面繪圖機制 178
9.1.1 繪制過程 178
9.1.2 雙緩沖技術(shù) 179
9.1.3 繪圖與動畫 179
9.2 Graphics的使用 181
9.2.1 幾何圖形繪制和填充 181
9.2.2 字符串繪制 185
9.2.3 圖片繪制 191
9.3 單元項目 194
9.3.1 GUI計算器 194
9.3.2 簡易繪圖軟件 198
本章小結(jié) 208
習(xí)題 208
第4單元。蔭va常用技術(shù)
第10章 字符串與正則表達式 213
10.1 再論字符串 213
10.1.1 字符串的不變性 213
10.1.2 StringBuilder類 215
10.1.3 字符串其他常用操作 217
10.2 正則表達式 219
10.2.1 正則符號 219
10.2.2 正則驗證與匹配 221
10.2.3 支持正則的字符串方法 225
本章小結(jié) 227
習(xí)題 227
第11章 Java集合框架 229
11.1 集合框架概述 229
11.2 常用集合類 231
11.2.1 ArrayList類 231
11.2.2 LinkedList類 233
11.2.3 HashMap類 236
11.2.4 HashSet類 240
11.3 集合工具類 240
11.3.1 Arrays類 240
11.3.2 Collections類 242
本章小結(jié) 242
習(xí)題 242
第12章 文件與I/O流 244
12.1 文件 244
12.1.1 創(chuàng)建文件對象 245
12.1.2 操作文件對象 245
12.2 I/O流概述 247
12.2.1 流的概念與分類 247
12.2.2 流的套接 247
12.3 字符流讀/寫 248
12.3.1 字符閱讀流 248
12.3.2 字符書寫流 249
12.4 字節(jié)流讀/寫 250
12.4.1 字節(jié)輸入流 250
12.4.2 字節(jié)輸出流 252
12.4.3 標準輸入/輸出 257
12.5 對象序列化 258
12.5.1 序列化技術(shù)概述 258
12.5.2 序列化與反序列化 258
12.5.3 序列化的限制 261
12.6 單元項目 262
12.6.1 項目概述 262
12.6.2 設(shè)計與實現(xiàn) 263
本章小結(jié) 267
習(xí)題 267
第13章 數(shù)據(jù)庫訪問技術(shù)JDBC 269
13.1 JDBC基本概念 269
13.2 JDBC驅(qū)動程序類型 270
13.3 搭建數(shù)據(jù)庫環(huán)境 271
13.3.1 安裝MySQL數(shù)據(jù)庫 271
13.3.2 建立數(shù)據(jù)表 271
13.3.3 配置JDBC驅(qū)動 271
13.3.4 接口Driver和類
DriverManager 272
13.3.5 編寫驅(qū)動測試程序 273
13.4 數(shù)據(jù)庫訪問 274
13.4.1 注冊數(shù)據(jù)庫驅(qū)動 274
13.4.2 創(chuàng)建連接對象 274
13.4.3 創(chuàng)建SQL對象 275
13.4.4 執(zhí)行SQL語句 275
13.4.5 訪問結(jié)果集對象 276
13.5 數(shù)據(jù)庫操作 277
13.5.1 在Swing窗口中顯示結(jié)果集 278
13.5.2 元數(shù)據(jù) 280
13.5.3 PreparedStatement對象 281
13.6 事務(wù)處理 282
13.6.1 事務(wù) 282
13.6.2 保存點 284
本章小結(jié) 285
習(xí)題 285
第5單元 課程項目實踐
第14章 課程項目—貪吃蛇游戲 289
14.1 項目功能描述 289
14.2 項目設(shè)計與實現(xiàn) 289
14.2.1 搭建游戲框架 289
14.2.2 GameImage類實現(xiàn) 290
14.2.3 DigitImage類實現(xiàn) 292
14.2.4 GameConfig類實現(xiàn) 292
14.2.5 Node類實現(xiàn) 294
14.2.6 Snake類實現(xiàn) 295
14.2.7 事件機制模擬 297
14.2.8 GameServer類實現(xiàn) 298
14.2.9 PanelInfo類實現(xiàn) 299
14.2.10 PanelGame類實現(xiàn) 301
14.2.11 國際化與本地化 301
14.2.12 MenuGame類實現(xiàn) 302
14.2.13 FrameGame類實現(xiàn) 304
14.2.14 PlayerController類實現(xiàn) 305
14.2.15 GameController類實現(xiàn) 305
14.2.16 GameEntry類實現(xiàn) 307
14.3 課程項目總結(jié) 308
附錄A 《勸學(xué)篇》 309
附錄B 編碼規(guī)范 311
附錄C JDK版本特性 314