Java典型模塊與項目實戰大全(配光盤)(簡體書)
商品資訊
ISBN13:9787302261520
出版社:清華大學出版社(大陸)
作者:周華清; 李為民; 張昌龍 編
出版日:2012/01/01
裝訂/頁數:平裝/691頁
附件:附光碟
人民幣定價:89 元
定價
:NT$ 534 元優惠價
:
87 折 465 元
絕版無法訂購
無法訂購
商品簡介
作者簡介
名人推薦
目次
書摘/試閱
商品簡介
《Java典型模塊與項目實戰大全》以實戰開發為原則,以Java熱門開發技術與項目案例開發為主線,通過Java開發中最常見的25個典型模塊和4個完整的項目案例,詳細介紹Java語言的特性、線程開發、圖形用戶開發(GUI)、文件I/O操作、Applet程序、網絡編程等知識。《Java典型模塊與項目實戰大全》附帶1張DVD光盤,內容為與《Java典型模塊與項目實戰大全》配套的多媒體教學視頻與源代碼,以及免費贈送的Java開發教學視頻等資料。《Java典型模塊與項目實戰大全》共32章,分為7篇。涵蓋的主要內容有搭建Java開發環境、Java面向對象編程、Java新特性、學生并發接水、模擬做飯場景、火車站售票系統、生產者與消費者問題、關機工具、典型的圖形用戶界面、計算器、秒表、捉迷藏游戲、鼠標繪直線、指針時鐘項目、控制動畫項目、記事本、拼圖游戲、文件屬性查看器、文件內容查看器、日記簿、查找和替換項目、圖像輪顯動畫項目、Applet事件監聽項目、動畫播放項目、網絡聊天室、FTP服務器客戶端、Web服務器、QQ聊天工具、人員信息管理項目、中國象棋游戲、俄羅斯方塊游戲網絡版、圖書管理系統項目等。《Java典型模塊與項目實戰大全》注重編程思想與實際開發相結合,書中的每個技術點都配備了具有典型性和實用價值的應用開發實例,適合想要學習Java語言的人員閱讀,尤其適合有一定Java語言基礎和想提高開發Java語言經驗的程序員閱讀。
作者簡介
周華清,畢業于長春科技大學。從事計算機教學和軟件開發10余年,擅長Java平臺的各種開發技術。現任職于東華理工大學,負責Java及其應用領域的課程設置、教學和科研開發及評估、學生學習結果評估以及遠程教學的開發和應用。曾在國內外雜志上發表過多篇論文,并參與了多個省級項目的開發。
李為民,國務院學科評議組委員,國家863計劃專家組成員,國家重點學科帶頭人。現任空軍工程大學軍事運籌學教授,常年參與各類大型項目的開發和Java平臺的研究。曾獲國家科技進步二等獎1項,獲省部級科研教學獎勵40多項,發表核心期刊論文100多篇,出版圖書10余部。
張昌龍,畢業于空軍工程大學。從事Java語言開發和教學多年,對各類計算機語言及數據庫技術有豐富的經驗。現為某旅專業技術軍官,軟件設計維護骨干。出版計算機類相關圖書多部,發表論文10余篇。
李為民,國務院學科評議組委員,國家863計劃專家組成員,國家重點學科帶頭人。現任空軍工程大學軍事運籌學教授,常年參與各類大型項目的開發和Java平臺的研究。曾獲國家科技進步二等獎1項,獲省部級科研教學獎勵40多項,發表核心期刊論文100多篇,出版圖書10余部。
張昌龍,畢業于空軍工程大學。從事Java語言開發和教學多年,對各類計算機語言及數據庫技術有豐富的經驗。現為某旅專業技術軍官,軟件設計維護骨干。出版計算機類相關圖書多部,發表論文10余篇。
名人推薦
《Java典型模塊與項目實戰大全》:
原創經典,程序員典藏。
涵蓋Java語言6大技術要點,詳解Java語法的最新特性。
精選25個典型模塊和4個項目案例,實戰Java應用開發。
提供極具價值的可擴展程序模塊,提高開發效率。
實戰為王,展示實際項目案例的開發精髓。
追蹤最新的前沿技術,真正提高程序員的開發水平。
應用當前流行的技術或架構,深入剖析并闡釋原理。
提供完整的源代碼、配套視頻和超值贈品。
原創經典,程序員典藏。
涵蓋Java語言6大技術要點,詳解Java語法的最新特性。
精選25個典型模塊和4個項目案例,實戰Java應用開發。
提供極具價值的可擴展程序模塊,提高開發效率。
實戰為王,展示實際項目案例的開發精髓。
追蹤最新的前沿技術,真正提高程序員的開發水平。
應用當前流行的技術或架構,深入剖析并闡釋原理。
提供完整的源代碼、配套視頻和超值贈品。
目次
第1篇 Java開發必備基礎
第1章 搭建Java開發環境 2
教學視頻:18分鐘
1.1 Java的過去、現在和未來 2
1.1.1 Java的歷史 2
1.1.2 Java的語言特點 3
1.1.3 Java API簡介 3
1.1.4 Java未來發展 4
1.2 Java程序設計環境 5
1.2.1 命令行工具——JDK 6.0 5
1.2.2 安裝工具包JDK 6
1.2.3 設置JDK環境 8
1.2.4 集成開發環境安裝——MyEclipse 8.5 10
1.2.5 MyEclipse的一些常用操作 11
1.3 創建和運行Java程序 14
1.3.1 手工創建、編譯和運行Java程序 14
1.3.2 在MyEclipse 8.5中創建、運行、調試和管理Java項目 15
1.4 小結 16
第2章 Java面向對象編程 17
教學視頻:13分鐘
2.1 面向對象的一些概念 17
2.1.1 面向對象涉及的概念 17
2.1.2 類和對象 19
2.2 面向對象的一些特性 20
2.2.1 繼承特性 20
2.2.2 多態特性 21
2.2.3 封裝特性 22
2.3 Java中實現的面向對象特性 22
2.3.1 定義類 22
2.3.2 創建對象 23
2.3.3 實現繼承 23
2.3.4 實現多態 24
2.3.5 實現封裝 26
2.4 小結 27
第3章 Java新特性 28
教學視頻:29分鐘
3.1 Java的一些簡單新特性 28
3.1.1 靜態導入 28
3.1.2 可變參數函數 30
3.1.3 增強版for循環 31
3.1.4 基本數據的拆、裝箱操作(autoboxing和unboxing) 32
3.2 枚舉 34
3.2.1 枚舉的實現原理 34
3.2.2 枚舉的簡單應用 36
3.2.3 枚舉的高級特性 37
3.3 反射 39
3.3.1 反射的基石——Class類 39
3.3.2 反射的基本應用 41
3.3.3 反射的高級應用 46
3.4 標注 49
3.4.1 標注的簡單使用 49
3.4.2 JDK的內置標注 51
3.5 泛型 53
3.5.1 為什么要使用泛型 54
3.5.2 泛型的一些特性 57
3.5.3 泛型的通配符 59
3.6 類加載器 62
3.6.1 什么是類加載器 63
3.6.2 什么是類加載器的委派模型 64
3.6.3 編寫一個自己的加載器 67
3.7 動態代理 73
3.7.1 什么是代理 73
3.7.2 動態代理基礎類 74
3.7.3 InvocationHandler接口 78
3.7.4 動態代理類的設計模式 81
3.8 小結 83
第2篇 線程開發
第4章 學生并發接水(線程Thread) 86
教學視頻:9分鐘
4.1 學生并發接水原理 86
4.1.1 項目結構框架分析 86
4.1.2 項目功能業務分析 86
4.2 不排隊形式學生并發接水 87
4.2.1 水龍頭類 88
4.2.2 學生類 88
4.2.3 測試類 89
4.3 學生并發接水的其他形式 90
4.3.1 “排隊接水”水龍頭類 90
4.3.2 “接完水後一起回教室”水龍頭類 90
4.4 知識點擴展——線程的基礎知識 91
4.4.1 為什么要使用線程 92
4.4.2 多線程程序的編寫方式 93
4.5 小結 98
第5章 模擬做飯場景(線程的join()方法) 99
教學視頻:7分鐘
5.1 做飯場景原理 99
5.1.1 項目結構框架分析 99
5.1.2 項目功能業務分析 99
5.2 紛亂的做飯場景 100
5.2.1 兒子的類 100
5.2.2 媽媽的類 101
5.2.3 做飯場景的類 102
5.2.4 修改後的媽媽類 102
5.3 知識點擴展——線程的狀態 103
5.3.1 線程的創建狀態 103
5.3.2 線程的暫停狀態 104
5.3.3 線程的結束狀態 106
5.4 小結 109
第6章 火車站售票系統(線程安全知識) 110
教學視頻:12分鐘
6.1 火車站售票系統原理 110
6.1.1 項目結構框架分析 110
6.1.2 項目功能業務分析 111
6.2 沒有實現線程安全的火車票售票系統 112
6.2.1 火車票的類 112
6.2.2 售票臺的類 113
6.2.3 實現線程安全的火車票售票系統 113
6.3 知識點擴展——線程的同步知識 115
6.3.1 為什么要使用同步機制 115
6.3.2 Synchronized的同步塊 117
6.3.3 Synchronized的同步方法 119
6.3.4 死鎖的問題 122
6.4 小結 124
第7章 生產者與消費者問題(線程通信知識) 125
教學視頻:10分鐘
7.1 生產者與消費者原理 125
7.1.1 項目結構框架分析 125
7.1.2 項目功能業務分析 125
7.2 無線程通信的生產者與消費者項目 126
7.2.1 生產者類 127
7.2.2 消費者類 128
7.2.3 儲存庫類 128
7.2.4 測試類 129
7.3 實現線程通信的生產者與消費者項目 130
7.3.1 生產者和消費者的類 130
7.3.2 儲存庫的類 131
7.4 知識點擴展——線程的通信知識 132
7.4.1 線程通信的基本知識 132
7.4.2 線程通信的具體實例 134
7.5 小結 136
第8章 關機工具(Timer類+系統命令) 137
教學視頻:5分鐘
8.1 關機工具原理 137
8.1.1 項目結構框架分析 137
8.1.2 項目功能業務分析 137
8.2 關機工具的實現過程 139
8.2.1 關機工具的類 139
8.2.2 關機工具的工具類 143
8.3 知識點擴展——關機工具項目涉及的知識 144
8.3.1 Timer和TimerTask類 144
8.3.2 shutdown命令 147
8.3.3 通過shutdown命令實現網絡遠程關機 150
8.4 小結 152
第3篇 GUI(圖形用戶界面)開發
第9章 典型的圖形用戶界面(各種組件) 154
教學視頻:15分鐘
9.1 Label和Button的用戶界面 154
9.1.1 分析按鈕和面板的用戶界面 154
9.1.2 按鈕和面板的用戶界面 155
9.1.3 組件Button和Label的基本知識 156
9.2 復選框的用戶界面 157
9.2.1 分析復選框的用戶界面 157
9.2.2 按鈕和面板的用戶界面 158
9.2.3 組件Checkbox和CheckboxGroup的基本知識 159
9.3 下拉菜單和列表的用戶界面 160
9.3.1 分析下拉菜單和列表的用戶界面 161
9.3.2 下拉菜單和列表的用戶界面 162
9.3.3 Choice和List組件的基本知識 164
9.4 輸入的用戶界面 165
9.4.1 分析輸入的用戶界面 165
9.4.2 輸入的用戶界面 167
9.4.3 TextField和TextArea組件的基本知識 169
9.5 滾動條的用戶界面 171
9.5.1 分析滾動條的用戶界面 171
9.5.2 滾動條的用戶界面 172
9.5.3 滾動組件的基本知識 174
9.6 菜單的用戶界面 175
9.6.1 分析菜單組件的用戶界面 175
9.6.2 菜單的用戶界面 177
9.6.3 菜單組件的基本知識 179
9.7 對話框的用戶界面 182
9.7.1 分析對話框和文件對話框的用戶界面 182
9.7.2 對話框的用戶界面 184
9.7.3 Dialog和FileDialog組件的基本知識 187
9.8 小結 188
第10章 計算器(布局管理器) 189
教學視頻:5分鐘
10.1 計算器原理 189
10.1.1 項目結構框架分析 189
10.1.2 項目功能業務分析 189
10.2 計算器的實現過程 191
10.3 知識點擴展——事件機制的高級知識 193
10.3.1 為什么需要版面的配置 194
10.3.2 Java語言中的各種布局管理器 195
10.4 小結 201
第11章 秒表(事件+線程) 202
教學視頻:7分鐘
11.1 秒表原理 202
11.1.1 項目結構框架分析 202
11.1.2 項目功能業務分析 202
11.2 秒表的實現過程 203
11.2.1 秒表類 203
11.2.2 測試秒表的類 206
11.3 知識點擴展——事件機制的基礎知識 206
11.3.1 事件處理機制 206
11.3.2 Window事件 208
11.3.3 Mouse事件 210
11.3.4 Key事件 213
11.3.5 其他底層事件 216
11.3.6 事件的高級編寫方法 217
11.4 小結 219
第12章 捉迷藏游戲(事件) 220
教學視頻:5分鐘
12.1 捉迷藏游戲原理 220
12.1.1 項目結構框架分析 220
12.1.2 項目功能業務分析 220
12.2 捉迷藏游戲的實現過程 221
12.2.1 捉迷藏游戲項目的原理 221
12.2.2 自定義按鈕類 222
12.2.3 測試的類 223
12.3 知識點擴展——事件機制的高級知識 223
12.3.1 事件多重應用 223
12.3.2 事件處理的詳細過程 228
12.4 小結 230
第13章 鼠標繪直線(繪圖+事件) 231
教學視頻:8分鐘
13.1 鼠標繪直線原理 231
13.1.1 項目結構框架分析 231
13.1.2 項目功能業務分析 231
13.2 鼠標繪直線的實現過程 233
13.2.1 直線的類 233
13.2.2 實現窗口類——通過paint()方法 234
13.2.3 實現窗口類——通過雙緩沖技術 236
13.3 知識點擴展——畫圖的基礎知識 237
13.3.1 畫圖的基礎知識 237
13.3.2 各種類型對象的繪制 239
13.4 小結 245
第14章 指針時鐘項目(Swing組件+時間算法) 246
教學視頻:7分鐘
14.1 指針時鐘原理 246
14.1.1 項目結構框架分析 246
14.1.2 項目功能業務分析 247
14.2 指針時鐘的實現過程 247
14.2.1 指針時鐘的界面 247
14.2.2 繪制指針時鐘的類 249
14.3 知識點擴展——從AWT到Swing的過渡 253
14.3.1 窗口類JFrame 253
14.3.2 按鈕類JButton和面板類JLabel 254
14.3.3 單選按鈕和復選框組件 258
14.3.4 選擇框組件 261
14.3.5 輸入框組件 263
14.4 小結 265
第15章 控制動畫項目 (JSlider和Timer組件) 266
教學視頻:7分鐘
15.1 控制動畫原理 266
15.1.1 項目結構框架分析 266
15.1.2 項目功能業務分析 267
15.2 控制動畫的實現過程 267
15.2.1 控制動畫的主界面 267
15.2.2 控制動畫的邏輯 269
15.3 知識點擴展——JSlider和Timer組件的基礎知識 272
15.3.1 使用JSlider組件創建無刻度的滑桿 272
15.3.2 使用JSlider組件創建帶數字刻度的滑桿 275
15.3.3 使用JSlider組件創建帶字符刻度的滑桿 277
15.3.4 JSlider組件的高級應用 279
15.3.5 Swing中的多線程 283
15.3.6 Timer組件的基礎知識 288
15.3.7 Timer組件的應用 289
15.4 小結 293
第16章 記事本(對話框組件) 294
教學視頻:54分鐘
16.1 記事本原理 294
16.1.1 項目結構框架分析 294
16.1.2 項目功能業務分析 294
16.2 記事本的實現過程 300
16.2.1 實現記事本的界面 300
16.2.2 實現菜單功能 303
16.2.3 文件類型的過濾 306
16.3 記事本的實現過程——字體設置對話框 307
16.3.1 字體設置對話框——主界面 307
16.3.2 字體設置對話框——jPanel1組件界面 310
16.3.3 字體設置對話框——其他組件 312
16.4 小結 313
第17章 拼圖游戲(GUI綜合應用) 314
教學視頻:20分鐘
17.1 拼圖游戲原理 314
17.1.1 項目結構框架分析 314
17.1.2 項目功能業務分析 314
17.1.3 拼圖游戲項目的原理 316
17.2 拼圖游戲的實現過程 317
17.2.1 實現移動功能的按鈕類 317
17.2.2 主面板的類 318
17.2.3 主窗口的類 320
17.3 小結 322
第4篇 文件操作和訪問
第18章 文件屬性查看器(GUI+文件操作) 324
教學視頻:6分鐘
18.1 文件屬性查看器原理 324
18.1.1 項目結構框架分析 324
18.1.2 項目功能業務分析 324
18.2 文件屬性查看器項目 326
18.2.1 實現顯示文件信息的自定義窗口 326
18.2.2 自定義窗口的顯示 329
18.3 知識點擴展——文件的操作和訪問 329
18.3.1 通過FileOp類實現文件創建和刪除功能 329
18.3.2 通過FileDir類實現列舉文件和目錄的功能 331
18.3.3 File類提供的屬性和方法 332
18.3.4 文件訪問的基本概念 334
18.3.5 文件的基本訪問方式——字節方式 336
18.3.6 文件的基本訪問方式——字符方式 338
18.3.7 文件的高級訪問方式 339
18.4 小結 342
第19章 文件內容查看器(GUI+文件訪問) 343
教學視頻:6分鐘
19.1 文件內容查看器原理 343
19.1.1 項目結構框架分析 343
19.1.2 項目功能業務分析 343
19.2 文件內容查看器項目 345
19.2.1 設計項目的界面——文件內容查看器輸入界面 345
19.2.2 “打開”菜單項的處理方法 348
19.2.3 單擊列表選項的處理方法 348
19.3 知識點擴展——管道的訪問 349
19.3.1 管道的訪問——字節方式 350
19.3.2 管道的訪問——字符方式 351
19.4 知識點擴展——內存的訪問 353
19.4.1 內存的訪問——字節方式 353
19.4.2 內存的訪問——字符和字符串方式 354
19.5 小結 356
第20章 日記簿(GUI+文件訪問和操作) 357
教學視頻:30分鐘
20.1 日記簿原理 357
20.1.1 項目結構框架分析 357
20.1.2 項目功能業務分析 357
20.2 日記簿項目 359
20.2.1 設計項目的界面——日記薄輸入界面 360
20.2.2 “保存”按鈕的事件處理 363
20.2.3 “查看日記”按鈕的事件處理 364
20.2.4 設計項目的界面——日記列表界面 365
20.2.5 “查看”按鈕的事件處理 367
20.2.6 “刪除”按鈕的事件處理 368
20.3 知識點擴展——過濾流的基礎知識 368
20.3.1 過濾流的緩存(Buffering)類 368
20.3.2 過濾流實現字節和字符相互轉換類 372
20.3.3 過濾流特定數據類型類 374
20.3.4 過濾流對象序列化類 378
20.3.5 過濾流打印類 381
20.4 小結 383
第21章 查找和替換項目(GUI+字符串處理) 384
教學視頻:10分鐘
21.1 查找和替換原理 384
21.1.1 項目結構框架分析 384
21.1.2 項目功能業務分析 384
21.2 查找和替換項目——利用AWT組件 386
21.2.1 設計項目的界面——查找和替換輸入界面 386
21.2.2 各種按鈕的事件處理 389
21.2.3 字符串處理的類 391
21.3 查找和替換項目——利用Swing組件 392
21.3.1 設計項目的界面——查找和替換輸入界面 392
21.3.2 各種按鈕的事件處理 394
21.4 小結 395
第5篇 Applet程序開發
第22章 圖像輪顯動畫項目(顯示圖像+多線程) 398
教學視頻:5分鐘
22.1 圖像輪顯動畫原理 398
22.1.1 項目結構框架分析 398
22.1.2 項目功能業務分析 398
22.2 圖像輪顯動畫項目 400
22.3 知識點擴展——Applet程序的基礎知識 402
22.3.1 Applet程序的執行過程 402
22.3.2 Applet程序的執行環境 402
22.3.3 Applet程序的輸出 403
22.3.4 Applet程序的標記 403
22.3.5 參數的傳遞 404
22.3.6 Applet程序的相關方法 406
22.4 小結 409
第23章 Applet事件監聽項目 (事件處理機制) 410
教學視頻:5分鐘
23.1 Applet事件監聽原理 410
23.1.1 項目結構框架分析 410
23.1.2 項目功能業務分析 410
23.2 Applet事件監聽項目 412
23.2.1 事件監聽的類 412
23.2.2 承載事件監聽的頁面 414
23.3 知識點擴展——MyEclipse開發環境對Applet程序的支持 414
23.3.1 MyEclipse開發環境對Applet項目的支持 415
23.3.2 MyEclipse開發環境對JAR的支持 419
23.4 小結 422
第24章 動畫播放項目(音頻操作+多線程) 423
教學視頻:5分鐘
24.1 動畫播放原理 423
24.1.1 項目結構框架分析 423
24.1.2 項目功能業務分析 423
24.2 動畫播放項目 425
24.2.1 動畫的類 425
24.2.2 控制動畫的類 427
24.3 知識點擴展——Applet程序的高級知識 428
24.3.1 音頻播放 428
24.3.2 Applet的上下文對象 430
24.4 小結 431
第6篇 網絡編程
第25章 網絡聊天室(UDP協議+多線程) 434
教學視頻:6分鐘
25.1 網絡聊天室原理 434
25.1.1 項目結構框架分析 434
25.1.2 項目功能業務分析 434
25.2 網絡聊天室的實現過程 436
25.3 知識點擴展——網絡編程和UDP協議 438
25.3.1 網絡編程涉及的基本概念 439
25.3.2 套接字(Socket)機制 440
25.3.3 UDP協議類 441
25.3.4 TCP協議類 445
25.3.5 TCP協議客戶端類 451
25.4 小結 452
第26章 FTP服務器客戶端 (FtpClient+I/O處理) 453
教學視頻:8分鐘
26.1 FTP服務器客戶端原理 453
26.1.1 項目結構框架分析 453
26.1.2 項目功能業務分析 454
26.2 FTP服務器客戶端的實現過程 455
26.2.1 FTP服務器操作的工具類 456
26.2.2 實現文件上傳的類 459
26.2.3 實現文件下載的類 459
26.3 知識點擴展——FtpClient類的相關知識 460
26.3.1 實現FTP服務器相關操作類 460
26.3.2 相關JAR包導入問題 462
26.4 小結 464
第27章 Web服務器(HTTP協議) 465
教學視頻:8分鐘
27.1 Web服務器原理 465
27.1.1 項目結構框架分析 465
27.1.2 項目功能業務分析 465
27.2 Web服務器的實現過程 466
27.2.1 實現與瀏覽器通信的類 466
27.2.2 實現Web服務器的類 469
27.2.3 瀏覽器所請求的頁面 470
27.3 知識點擴展——HTTP協議知識 470
27.3.1 HTTP協議原理 470
27.3.2 實現HTTP協議服務器的原理 471
27.4 小結 471
第28章 QQ聊天工具 (Swing+多線程+網絡編程) 472
教學視頻:39分鐘
28.1 QQ聊天工具原理 472
28.1.1 項目結構框架分析 472
28.1.2 項目功能業務分析 473
28.2 QQ項目——對象模型的類 476
28.2.1 信息的類 476
28.2.2 “用戶”的類 478
28.3 QQ項目——登錄功能 478
28.3.1 QQ服務器界面的設計 479
28.3.2 QQ服務器後臺程序 480
28.3.3 QQ客戶端登錄界面的設計 481
28.3.4 QQ客戶端後臺程序 484
28.3.5 成員列表窗口 485
28.4 QQ項目——聊天功能 487
28.4.1 服務器端的信息轉發 488
28.4.2 客戶端信息的發送和接收 490
28.4.3 客戶端信息轉發類 492
28.5 小結 494
第7篇 項目案例實戰
第29章 人員信息管理項目 (接口設計模式+MySQL數據庫) 496
教學視頻:30分鐘
29.1 人員信息管理原理 496
29.1.1 項目結構框架分析 496
29.1.2 項目功能業務分析 497
29.2 人員信息管理項目前期準備 502
29.2.1 設計數據庫 502
29.2.2 數據庫操作相關類 504
29.3 人員信息管理項目——DAO層 505
29.3.1 實現數據連接操作(DAO)的接口 506
29.3.2 實現數據連接操作(DAO)的實現類 507
29.3.3 實現數據連接操作(DAO)的代理類 510
29.3.4 實現數據連接操作(DAO)的工廠類 512
29.4 人員信息管理項目——服務層和表示層 512
29.4.1 人員信息管理項目的服務層 512
29.4.2 人員信息管理項目的表示層 515
29.4.3 工具類 516
29.5 人員信息管理項目——代理類測試 517
29.5.1 測試實現業務功能的各種方法 518
29.5.2 人員信息管理入口類 520
29.6 知識點擴展——設計模式的基礎知識 521
29.6.1 工廠設計模式 521
29.6.2 代理設計模式 525
29.7 小結 527
第30章 中國象棋游戲(GUI+游戲規則算法) 528
教學視頻:37分鐘
30.1 象棋游戲原理 528
30.1.1 象棋游戲的基本規則 528
30.1.2 項目結構框架分析 529
30.1.3 項目功能業務分析 529
30.2 象棋游戲項目——象棋游戲的主類 534
30.2.1 實現象棋游戲的主界面 534
30.2.2 實現象棋游戲中添加棋子的功能 537
30.2.3 實現象棋游戲中棋子閃爍的功能 539
30.2.4 處理單擊棋子事件 539
30.2.5 處理單擊按鈕事件 543
30.3 象棋游戲項目——規則的內部類 546
30.3.1 實現卒移動和吃的方法 546
30.3.2 實現炮、車移動和吃的方法 550
30.3.3 實現馬移動和吃的方法 554
30.3.4 實現象移動和吃的方法 561
30.3.5 實現士移動和吃的方法 567
30.3.6 實現將移動和吃的方法 572
30.4 小結 578
第31章 俄羅斯方塊游戲網絡版(Swing+多線程+網絡編程) 579
教學視頻:60分鐘
31.1 俄羅斯方塊游戲項目原理 579
31.1.1 基本原理 579
31.1.2 項目結構框架分析 580
31.1.3 項目功能業務分析 580
31.2 俄羅斯方塊游戲項目——初步設計涉及的對象 589
31.2.1 正方形類 589
31.2.2 俄羅斯方塊類 590
31.2.3 俄羅斯方塊游戲項目的TOP10分數對象 599
31.3 俄羅斯方塊游戲項目——服務器端和客戶端 602
31.3.1 表示出俄羅斯方塊游戲項目的服務器端 602
31.3.2 表示出俄羅斯方塊游戲項目的客戶端 605
31.4 俄羅斯方塊游戲項目——游戲主界面 607
31.4.1 俄羅斯方塊游戲的主界面 608
31.4.2 俄羅斯方塊游戲的事件處理類 612
31.4.3 俄羅斯方塊游戲的狀態工具欄 614
31.5 俄羅斯方塊游戲項目——其他界面的設計 616
31.5.1 “關于”面板 616
31.5.2 連接對方面板 618
31.5.3 分數報告面板 620
31.5.4 設置級別面板 624
31.5.5 警告面板和對話框 625
31.5.6 游戲結束面板和對話框 627
31.6 小結 630
第32章 圖書管理系統項目 (GUI+Oracle數據庫) 631
教學視頻:59分鐘
32.1 圖書管理系統原理 631
32.1.1 項目結構框架分析 631
32.1.2 項目功能業務分析 631
32.2 圖書管理系統項目——圖書的操作 640
32.2.1 實現添加圖書功能的類 640
32.2.2 實現修改圖書功能的類 644
32.2.3 實現瀏覽圖書信息的類 647
32.2.4 實現刪除圖書信息的類 650
32.3 圖書管理系統項目——用戶的操作 652
32.3.1 實現添加用戶功能的類 653
32.3.2 實現刪除用戶功能的類 656
32.3.3 實現修改用戶功能的類 658
32.3.4 實現用戶登錄功能的類 661
32.3.5 實現用戶列表功能的類 664
32.4 圖書管理系統項目——出借圖書的操作 665
32.4.1 出借圖書操作的類 665
32.4.2 借書列表方法 669
32.4.3 修改出借圖書信息方法 672
32.5 圖書管理系統項目——歸還圖書的操作 676
32.5.1 歸還圖書類 676
32.5.2 修改歸還圖書信息類 679
32.6 圖書管理系統項目——該項目的其他類 683
32.6.1 主窗口類 683
32.6.2 數據庫操作 689
32.7 小結 691
第1章 搭建Java開發環境 2
教學視頻:18分鐘
1.1 Java的過去、現在和未來 2
1.1.1 Java的歷史 2
1.1.2 Java的語言特點 3
1.1.3 Java API簡介 3
1.1.4 Java未來發展 4
1.2 Java程序設計環境 5
1.2.1 命令行工具——JDK 6.0 5
1.2.2 安裝工具包JDK 6
1.2.3 設置JDK環境 8
1.2.4 集成開發環境安裝——MyEclipse 8.5 10
1.2.5 MyEclipse的一些常用操作 11
1.3 創建和運行Java程序 14
1.3.1 手工創建、編譯和運行Java程序 14
1.3.2 在MyEclipse 8.5中創建、運行、調試和管理Java項目 15
1.4 小結 16
第2章 Java面向對象編程 17
教學視頻:13分鐘
2.1 面向對象的一些概念 17
2.1.1 面向對象涉及的概念 17
2.1.2 類和對象 19
2.2 面向對象的一些特性 20
2.2.1 繼承特性 20
2.2.2 多態特性 21
2.2.3 封裝特性 22
2.3 Java中實現的面向對象特性 22
2.3.1 定義類 22
2.3.2 創建對象 23
2.3.3 實現繼承 23
2.3.4 實現多態 24
2.3.5 實現封裝 26
2.4 小結 27
第3章 Java新特性 28
教學視頻:29分鐘
3.1 Java的一些簡單新特性 28
3.1.1 靜態導入 28
3.1.2 可變參數函數 30
3.1.3 增強版for循環 31
3.1.4 基本數據的拆、裝箱操作(autoboxing和unboxing) 32
3.2 枚舉 34
3.2.1 枚舉的實現原理 34
3.2.2 枚舉的簡單應用 36
3.2.3 枚舉的高級特性 37
3.3 反射 39
3.3.1 反射的基石——Class類 39
3.3.2 反射的基本應用 41
3.3.3 反射的高級應用 46
3.4 標注 49
3.4.1 標注的簡單使用 49
3.4.2 JDK的內置標注 51
3.5 泛型 53
3.5.1 為什么要使用泛型 54
3.5.2 泛型的一些特性 57
3.5.3 泛型的通配符 59
3.6 類加載器 62
3.6.1 什么是類加載器 63
3.6.2 什么是類加載器的委派模型 64
3.6.3 編寫一個自己的加載器 67
3.7 動態代理 73
3.7.1 什么是代理 73
3.7.2 動態代理基礎類 74
3.7.3 InvocationHandler接口 78
3.7.4 動態代理類的設計模式 81
3.8 小結 83
第2篇 線程開發
第4章 學生并發接水(線程Thread) 86
教學視頻:9分鐘
4.1 學生并發接水原理 86
4.1.1 項目結構框架分析 86
4.1.2 項目功能業務分析 86
4.2 不排隊形式學生并發接水 87
4.2.1 水龍頭類 88
4.2.2 學生類 88
4.2.3 測試類 89
4.3 學生并發接水的其他形式 90
4.3.1 “排隊接水”水龍頭類 90
4.3.2 “接完水後一起回教室”水龍頭類 90
4.4 知識點擴展——線程的基礎知識 91
4.4.1 為什么要使用線程 92
4.4.2 多線程程序的編寫方式 93
4.5 小結 98
第5章 模擬做飯場景(線程的join()方法) 99
教學視頻:7分鐘
5.1 做飯場景原理 99
5.1.1 項目結構框架分析 99
5.1.2 項目功能業務分析 99
5.2 紛亂的做飯場景 100
5.2.1 兒子的類 100
5.2.2 媽媽的類 101
5.2.3 做飯場景的類 102
5.2.4 修改後的媽媽類 102
5.3 知識點擴展——線程的狀態 103
5.3.1 線程的創建狀態 103
5.3.2 線程的暫停狀態 104
5.3.3 線程的結束狀態 106
5.4 小結 109
第6章 火車站售票系統(線程安全知識) 110
教學視頻:12分鐘
6.1 火車站售票系統原理 110
6.1.1 項目結構框架分析 110
6.1.2 項目功能業務分析 111
6.2 沒有實現線程安全的火車票售票系統 112
6.2.1 火車票的類 112
6.2.2 售票臺的類 113
6.2.3 實現線程安全的火車票售票系統 113
6.3 知識點擴展——線程的同步知識 115
6.3.1 為什么要使用同步機制 115
6.3.2 Synchronized的同步塊 117
6.3.3 Synchronized的同步方法 119
6.3.4 死鎖的問題 122
6.4 小結 124
第7章 生產者與消費者問題(線程通信知識) 125
教學視頻:10分鐘
7.1 生產者與消費者原理 125
7.1.1 項目結構框架分析 125
7.1.2 項目功能業務分析 125
7.2 無線程通信的生產者與消費者項目 126
7.2.1 生產者類 127
7.2.2 消費者類 128
7.2.3 儲存庫類 128
7.2.4 測試類 129
7.3 實現線程通信的生產者與消費者項目 130
7.3.1 生產者和消費者的類 130
7.3.2 儲存庫的類 131
7.4 知識點擴展——線程的通信知識 132
7.4.1 線程通信的基本知識 132
7.4.2 線程通信的具體實例 134
7.5 小結 136
第8章 關機工具(Timer類+系統命令) 137
教學視頻:5分鐘
8.1 關機工具原理 137
8.1.1 項目結構框架分析 137
8.1.2 項目功能業務分析 137
8.2 關機工具的實現過程 139
8.2.1 關機工具的類 139
8.2.2 關機工具的工具類 143
8.3 知識點擴展——關機工具項目涉及的知識 144
8.3.1 Timer和TimerTask類 144
8.3.2 shutdown命令 147
8.3.3 通過shutdown命令實現網絡遠程關機 150
8.4 小結 152
第3篇 GUI(圖形用戶界面)開發
第9章 典型的圖形用戶界面(各種組件) 154
教學視頻:15分鐘
9.1 Label和Button的用戶界面 154
9.1.1 分析按鈕和面板的用戶界面 154
9.1.2 按鈕和面板的用戶界面 155
9.1.3 組件Button和Label的基本知識 156
9.2 復選框的用戶界面 157
9.2.1 分析復選框的用戶界面 157
9.2.2 按鈕和面板的用戶界面 158
9.2.3 組件Checkbox和CheckboxGroup的基本知識 159
9.3 下拉菜單和列表的用戶界面 160
9.3.1 分析下拉菜單和列表的用戶界面 161
9.3.2 下拉菜單和列表的用戶界面 162
9.3.3 Choice和List組件的基本知識 164
9.4 輸入的用戶界面 165
9.4.1 分析輸入的用戶界面 165
9.4.2 輸入的用戶界面 167
9.4.3 TextField和TextArea組件的基本知識 169
9.5 滾動條的用戶界面 171
9.5.1 分析滾動條的用戶界面 171
9.5.2 滾動條的用戶界面 172
9.5.3 滾動組件的基本知識 174
9.6 菜單的用戶界面 175
9.6.1 分析菜單組件的用戶界面 175
9.6.2 菜單的用戶界面 177
9.6.3 菜單組件的基本知識 179
9.7 對話框的用戶界面 182
9.7.1 分析對話框和文件對話框的用戶界面 182
9.7.2 對話框的用戶界面 184
9.7.3 Dialog和FileDialog組件的基本知識 187
9.8 小結 188
第10章 計算器(布局管理器) 189
教學視頻:5分鐘
10.1 計算器原理 189
10.1.1 項目結構框架分析 189
10.1.2 項目功能業務分析 189
10.2 計算器的實現過程 191
10.3 知識點擴展——事件機制的高級知識 193
10.3.1 為什么需要版面的配置 194
10.3.2 Java語言中的各種布局管理器 195
10.4 小結 201
第11章 秒表(事件+線程) 202
教學視頻:7分鐘
11.1 秒表原理 202
11.1.1 項目結構框架分析 202
11.1.2 項目功能業務分析 202
11.2 秒表的實現過程 203
11.2.1 秒表類 203
11.2.2 測試秒表的類 206
11.3 知識點擴展——事件機制的基礎知識 206
11.3.1 事件處理機制 206
11.3.2 Window事件 208
11.3.3 Mouse事件 210
11.3.4 Key事件 213
11.3.5 其他底層事件 216
11.3.6 事件的高級編寫方法 217
11.4 小結 219
第12章 捉迷藏游戲(事件) 220
教學視頻:5分鐘
12.1 捉迷藏游戲原理 220
12.1.1 項目結構框架分析 220
12.1.2 項目功能業務分析 220
12.2 捉迷藏游戲的實現過程 221
12.2.1 捉迷藏游戲項目的原理 221
12.2.2 自定義按鈕類 222
12.2.3 測試的類 223
12.3 知識點擴展——事件機制的高級知識 223
12.3.1 事件多重應用 223
12.3.2 事件處理的詳細過程 228
12.4 小結 230
第13章 鼠標繪直線(繪圖+事件) 231
教學視頻:8分鐘
13.1 鼠標繪直線原理 231
13.1.1 項目結構框架分析 231
13.1.2 項目功能業務分析 231
13.2 鼠標繪直線的實現過程 233
13.2.1 直線的類 233
13.2.2 實現窗口類——通過paint()方法 234
13.2.3 實現窗口類——通過雙緩沖技術 236
13.3 知識點擴展——畫圖的基礎知識 237
13.3.1 畫圖的基礎知識 237
13.3.2 各種類型對象的繪制 239
13.4 小結 245
第14章 指針時鐘項目(Swing組件+時間算法) 246
教學視頻:7分鐘
14.1 指針時鐘原理 246
14.1.1 項目結構框架分析 246
14.1.2 項目功能業務分析 247
14.2 指針時鐘的實現過程 247
14.2.1 指針時鐘的界面 247
14.2.2 繪制指針時鐘的類 249
14.3 知識點擴展——從AWT到Swing的過渡 253
14.3.1 窗口類JFrame 253
14.3.2 按鈕類JButton和面板類JLabel 254
14.3.3 單選按鈕和復選框組件 258
14.3.4 選擇框組件 261
14.3.5 輸入框組件 263
14.4 小結 265
第15章 控制動畫項目 (JSlider和Timer組件) 266
教學視頻:7分鐘
15.1 控制動畫原理 266
15.1.1 項目結構框架分析 266
15.1.2 項目功能業務分析 267
15.2 控制動畫的實現過程 267
15.2.1 控制動畫的主界面 267
15.2.2 控制動畫的邏輯 269
15.3 知識點擴展——JSlider和Timer組件的基礎知識 272
15.3.1 使用JSlider組件創建無刻度的滑桿 272
15.3.2 使用JSlider組件創建帶數字刻度的滑桿 275
15.3.3 使用JSlider組件創建帶字符刻度的滑桿 277
15.3.4 JSlider組件的高級應用 279
15.3.5 Swing中的多線程 283
15.3.6 Timer組件的基礎知識 288
15.3.7 Timer組件的應用 289
15.4 小結 293
第16章 記事本(對話框組件) 294
教學視頻:54分鐘
16.1 記事本原理 294
16.1.1 項目結構框架分析 294
16.1.2 項目功能業務分析 294
16.2 記事本的實現過程 300
16.2.1 實現記事本的界面 300
16.2.2 實現菜單功能 303
16.2.3 文件類型的過濾 306
16.3 記事本的實現過程——字體設置對話框 307
16.3.1 字體設置對話框——主界面 307
16.3.2 字體設置對話框——jPanel1組件界面 310
16.3.3 字體設置對話框——其他組件 312
16.4 小結 313
第17章 拼圖游戲(GUI綜合應用) 314
教學視頻:20分鐘
17.1 拼圖游戲原理 314
17.1.1 項目結構框架分析 314
17.1.2 項目功能業務分析 314
17.1.3 拼圖游戲項目的原理 316
17.2 拼圖游戲的實現過程 317
17.2.1 實現移動功能的按鈕類 317
17.2.2 主面板的類 318
17.2.3 主窗口的類 320
17.3 小結 322
第4篇 文件操作和訪問
第18章 文件屬性查看器(GUI+文件操作) 324
教學視頻:6分鐘
18.1 文件屬性查看器原理 324
18.1.1 項目結構框架分析 324
18.1.2 項目功能業務分析 324
18.2 文件屬性查看器項目 326
18.2.1 實現顯示文件信息的自定義窗口 326
18.2.2 自定義窗口的顯示 329
18.3 知識點擴展——文件的操作和訪問 329
18.3.1 通過FileOp類實現文件創建和刪除功能 329
18.3.2 通過FileDir類實現列舉文件和目錄的功能 331
18.3.3 File類提供的屬性和方法 332
18.3.4 文件訪問的基本概念 334
18.3.5 文件的基本訪問方式——字節方式 336
18.3.6 文件的基本訪問方式——字符方式 338
18.3.7 文件的高級訪問方式 339
18.4 小結 342
第19章 文件內容查看器(GUI+文件訪問) 343
教學視頻:6分鐘
19.1 文件內容查看器原理 343
19.1.1 項目結構框架分析 343
19.1.2 項目功能業務分析 343
19.2 文件內容查看器項目 345
19.2.1 設計項目的界面——文件內容查看器輸入界面 345
19.2.2 “打開”菜單項的處理方法 348
19.2.3 單擊列表選項的處理方法 348
19.3 知識點擴展——管道的訪問 349
19.3.1 管道的訪問——字節方式 350
19.3.2 管道的訪問——字符方式 351
19.4 知識點擴展——內存的訪問 353
19.4.1 內存的訪問——字節方式 353
19.4.2 內存的訪問——字符和字符串方式 354
19.5 小結 356
第20章 日記簿(GUI+文件訪問和操作) 357
教學視頻:30分鐘
20.1 日記簿原理 357
20.1.1 項目結構框架分析 357
20.1.2 項目功能業務分析 357
20.2 日記簿項目 359
20.2.1 設計項目的界面——日記薄輸入界面 360
20.2.2 “保存”按鈕的事件處理 363
20.2.3 “查看日記”按鈕的事件處理 364
20.2.4 設計項目的界面——日記列表界面 365
20.2.5 “查看”按鈕的事件處理 367
20.2.6 “刪除”按鈕的事件處理 368
20.3 知識點擴展——過濾流的基礎知識 368
20.3.1 過濾流的緩存(Buffering)類 368
20.3.2 過濾流實現字節和字符相互轉換類 372
20.3.3 過濾流特定數據類型類 374
20.3.4 過濾流對象序列化類 378
20.3.5 過濾流打印類 381
20.4 小結 383
第21章 查找和替換項目(GUI+字符串處理) 384
教學視頻:10分鐘
21.1 查找和替換原理 384
21.1.1 項目結構框架分析 384
21.1.2 項目功能業務分析 384
21.2 查找和替換項目——利用AWT組件 386
21.2.1 設計項目的界面——查找和替換輸入界面 386
21.2.2 各種按鈕的事件處理 389
21.2.3 字符串處理的類 391
21.3 查找和替換項目——利用Swing組件 392
21.3.1 設計項目的界面——查找和替換輸入界面 392
21.3.2 各種按鈕的事件處理 394
21.4 小結 395
第5篇 Applet程序開發
第22章 圖像輪顯動畫項目(顯示圖像+多線程) 398
教學視頻:5分鐘
22.1 圖像輪顯動畫原理 398
22.1.1 項目結構框架分析 398
22.1.2 項目功能業務分析 398
22.2 圖像輪顯動畫項目 400
22.3 知識點擴展——Applet程序的基礎知識 402
22.3.1 Applet程序的執行過程 402
22.3.2 Applet程序的執行環境 402
22.3.3 Applet程序的輸出 403
22.3.4 Applet程序的標記 403
22.3.5 參數的傳遞 404
22.3.6 Applet程序的相關方法 406
22.4 小結 409
第23章 Applet事件監聽項目 (事件處理機制) 410
教學視頻:5分鐘
23.1 Applet事件監聽原理 410
23.1.1 項目結構框架分析 410
23.1.2 項目功能業務分析 410
23.2 Applet事件監聽項目 412
23.2.1 事件監聽的類 412
23.2.2 承載事件監聽的頁面 414
23.3 知識點擴展——MyEclipse開發環境對Applet程序的支持 414
23.3.1 MyEclipse開發環境對Applet項目的支持 415
23.3.2 MyEclipse開發環境對JAR的支持 419
23.4 小結 422
第24章 動畫播放項目(音頻操作+多線程) 423
教學視頻:5分鐘
24.1 動畫播放原理 423
24.1.1 項目結構框架分析 423
24.1.2 項目功能業務分析 423
24.2 動畫播放項目 425
24.2.1 動畫的類 425
24.2.2 控制動畫的類 427
24.3 知識點擴展——Applet程序的高級知識 428
24.3.1 音頻播放 428
24.3.2 Applet的上下文對象 430
24.4 小結 431
第6篇 網絡編程
第25章 網絡聊天室(UDP協議+多線程) 434
教學視頻:6分鐘
25.1 網絡聊天室原理 434
25.1.1 項目結構框架分析 434
25.1.2 項目功能業務分析 434
25.2 網絡聊天室的實現過程 436
25.3 知識點擴展——網絡編程和UDP協議 438
25.3.1 網絡編程涉及的基本概念 439
25.3.2 套接字(Socket)機制 440
25.3.3 UDP協議類 441
25.3.4 TCP協議類 445
25.3.5 TCP協議客戶端類 451
25.4 小結 452
第26章 FTP服務器客戶端 (FtpClient+I/O處理) 453
教學視頻:8分鐘
26.1 FTP服務器客戶端原理 453
26.1.1 項目結構框架分析 453
26.1.2 項目功能業務分析 454
26.2 FTP服務器客戶端的實現過程 455
26.2.1 FTP服務器操作的工具類 456
26.2.2 實現文件上傳的類 459
26.2.3 實現文件下載的類 459
26.3 知識點擴展——FtpClient類的相關知識 460
26.3.1 實現FTP服務器相關操作類 460
26.3.2 相關JAR包導入問題 462
26.4 小結 464
第27章 Web服務器(HTTP協議) 465
教學視頻:8分鐘
27.1 Web服務器原理 465
27.1.1 項目結構框架分析 465
27.1.2 項目功能業務分析 465
27.2 Web服務器的實現過程 466
27.2.1 實現與瀏覽器通信的類 466
27.2.2 實現Web服務器的類 469
27.2.3 瀏覽器所請求的頁面 470
27.3 知識點擴展——HTTP協議知識 470
27.3.1 HTTP協議原理 470
27.3.2 實現HTTP協議服務器的原理 471
27.4 小結 471
第28章 QQ聊天工具 (Swing+多線程+網絡編程) 472
教學視頻:39分鐘
28.1 QQ聊天工具原理 472
28.1.1 項目結構框架分析 472
28.1.2 項目功能業務分析 473
28.2 QQ項目——對象模型的類 476
28.2.1 信息的類 476
28.2.2 “用戶”的類 478
28.3 QQ項目——登錄功能 478
28.3.1 QQ服務器界面的設計 479
28.3.2 QQ服務器後臺程序 480
28.3.3 QQ客戶端登錄界面的設計 481
28.3.4 QQ客戶端後臺程序 484
28.3.5 成員列表窗口 485
28.4 QQ項目——聊天功能 487
28.4.1 服務器端的信息轉發 488
28.4.2 客戶端信息的發送和接收 490
28.4.3 客戶端信息轉發類 492
28.5 小結 494
第7篇 項目案例實戰
第29章 人員信息管理項目 (接口設計模式+MySQL數據庫) 496
教學視頻:30分鐘
29.1 人員信息管理原理 496
29.1.1 項目結構框架分析 496
29.1.2 項目功能業務分析 497
29.2 人員信息管理項目前期準備 502
29.2.1 設計數據庫 502
29.2.2 數據庫操作相關類 504
29.3 人員信息管理項目——DAO層 505
29.3.1 實現數據連接操作(DAO)的接口 506
29.3.2 實現數據連接操作(DAO)的實現類 507
29.3.3 實現數據連接操作(DAO)的代理類 510
29.3.4 實現數據連接操作(DAO)的工廠類 512
29.4 人員信息管理項目——服務層和表示層 512
29.4.1 人員信息管理項目的服務層 512
29.4.2 人員信息管理項目的表示層 515
29.4.3 工具類 516
29.5 人員信息管理項目——代理類測試 517
29.5.1 測試實現業務功能的各種方法 518
29.5.2 人員信息管理入口類 520
29.6 知識點擴展——設計模式的基礎知識 521
29.6.1 工廠設計模式 521
29.6.2 代理設計模式 525
29.7 小結 527
第30章 中國象棋游戲(GUI+游戲規則算法) 528
教學視頻:37分鐘
30.1 象棋游戲原理 528
30.1.1 象棋游戲的基本規則 528
30.1.2 項目結構框架分析 529
30.1.3 項目功能業務分析 529
30.2 象棋游戲項目——象棋游戲的主類 534
30.2.1 實現象棋游戲的主界面 534
30.2.2 實現象棋游戲中添加棋子的功能 537
30.2.3 實現象棋游戲中棋子閃爍的功能 539
30.2.4 處理單擊棋子事件 539
30.2.5 處理單擊按鈕事件 543
30.3 象棋游戲項目——規則的內部類 546
30.3.1 實現卒移動和吃的方法 546
30.3.2 實現炮、車移動和吃的方法 550
30.3.3 實現馬移動和吃的方法 554
30.3.4 實現象移動和吃的方法 561
30.3.5 實現士移動和吃的方法 567
30.3.6 實現將移動和吃的方法 572
30.4 小結 578
第31章 俄羅斯方塊游戲網絡版(Swing+多線程+網絡編程) 579
教學視頻:60分鐘
31.1 俄羅斯方塊游戲項目原理 579
31.1.1 基本原理 579
31.1.2 項目結構框架分析 580
31.1.3 項目功能業務分析 580
31.2 俄羅斯方塊游戲項目——初步設計涉及的對象 589
31.2.1 正方形類 589
31.2.2 俄羅斯方塊類 590
31.2.3 俄羅斯方塊游戲項目的TOP10分數對象 599
31.3 俄羅斯方塊游戲項目——服務器端和客戶端 602
31.3.1 表示出俄羅斯方塊游戲項目的服務器端 602
31.3.2 表示出俄羅斯方塊游戲項目的客戶端 605
31.4 俄羅斯方塊游戲項目——游戲主界面 607
31.4.1 俄羅斯方塊游戲的主界面 608
31.4.2 俄羅斯方塊游戲的事件處理類 612
31.4.3 俄羅斯方塊游戲的狀態工具欄 614
31.5 俄羅斯方塊游戲項目——其他界面的設計 616
31.5.1 “關于”面板 616
31.5.2 連接對方面板 618
31.5.3 分數報告面板 620
31.5.4 設置級別面板 624
31.5.5 警告面板和對話框 625
31.5.6 游戲結束面板和對話框 627
31.6 小結 630
第32章 圖書管理系統項目 (GUI+Oracle數據庫) 631
教學視頻:59分鐘
32.1 圖書管理系統原理 631
32.1.1 項目結構框架分析 631
32.1.2 項目功能業務分析 631
32.2 圖書管理系統項目——圖書的操作 640
32.2.1 實現添加圖書功能的類 640
32.2.2 實現修改圖書功能的類 644
32.2.3 實現瀏覽圖書信息的類 647
32.2.4 實現刪除圖書信息的類 650
32.3 圖書管理系統項目——用戶的操作 652
32.3.1 實現添加用戶功能的類 653
32.3.2 實現刪除用戶功能的類 656
32.3.3 實現修改用戶功能的類 658
32.3.4 實現用戶登錄功能的類 661
32.3.5 實現用戶列表功能的類 664
32.4 圖書管理系統項目——出借圖書的操作 665
32.4.1 出借圖書操作的類 665
32.4.2 借書列表方法 669
32.4.3 修改出借圖書信息方法 672
32.5 圖書管理系統項目——歸還圖書的操作 676
32.5.1 歸還圖書類 676
32.5.2 修改歸還圖書信息類 679
32.6 圖書管理系統項目——該項目的其他類 683
32.6.1 主窗口類 683
32.6.2 數據庫操作 689
32.7 小結 691
書摘/試閱
代理這個術語對于任何人來說都不陌生,因為在現實生活中經常會與其打交道。本節就以買書為例講解什么是代理。
假設你需要買一本書,一種方法是親自去各大書店查找是否有自己需要的書,然後才能買。如果你非常忙,沒有時間處理這些事情,那么可以去找中介(當當網),讓中介幫你處理這些事情,中介實際上就是你的代理。本來是你要做的事情,現在中介幫你一一處理。對于你來說跟書店直接交易與跟同中介直接交易沒有任何差異,你甚至可能覺察不到書店的存在,這實際上就是代理的一個最大的好處。
為什么不直接到書店找書而需要中介?其實一個問題恰恰解答了什么時候該用代理模式的問題。
原因一:可能在上班,沒時間到各大書店。
對應到應用程序:客戶端無法直接操作實際對象。那么為什么無法直接操作呢?一種情況是需要調用的對象在另外一臺計算機上,需要跨越網絡才能訪問。如果想直接去調用對象,需要處理網絡連接、處理打包、解包等非常復雜的步驟,所以為了簡化客戶端的處理出現了代理。
假設你需要買一本書,一種方法是親自去各大書店查找是否有自己需要的書,然後才能買。如果你非常忙,沒有時間處理這些事情,那么可以去找中介(當當網),讓中介幫你處理這些事情,中介實際上就是你的代理。本來是你要做的事情,現在中介幫你一一處理。對于你來說跟書店直接交易與跟同中介直接交易沒有任何差異,你甚至可能覺察不到書店的存在,這實際上就是代理的一個最大的好處。
為什么不直接到書店找書而需要中介?其實一個問題恰恰解答了什么時候該用代理模式的問題。
原因一:可能在上班,沒時間到各大書店。
對應到應用程序:客戶端無法直接操作實際對象。那么為什么無法直接操作呢?一種情況是需要調用的對象在另外一臺計算機上,需要跨越網絡才能訪問。如果想直接去調用對象,需要處理網絡連接、處理打包、解包等非常復雜的步驟,所以為了簡化客戶端的處理出現了代理。
主題書展
更多
主題書展
更多書展購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

