為了滿足廣大讀者對Java軟件項目開發(fā)技術(shù)的學(xué)習(xí)需求,特別是為了提高計算機專業(yè)學(xué)生的軟件項目開發(fā)能力,本書在介紹Java面向?qū)ο筌浖_發(fā)所涉及的基本理論知識的基礎(chǔ)上,以實際的軟件項目為案例,重點介紹了項目結(jié)構(gòu)設(shè)計、界面設(shè)計、業(yè)務(wù)處理和數(shù)據(jù)處理等整個軟件開發(fā)過程,將多線程編程、基于Socket的網(wǎng)絡(luò)編程和數(shù)據(jù)庫編程有機地結(jié)合起來,實現(xiàn)案例項目的各項功能。
本書以一個完整軟件項目的開發(fā)過程為主線,融合必需的知識點,按“引入問題”—“解答問題”—“分析問題”的方式設(shè)計學(xué)習(xí)情景,項目所分解出的所有案例按“案例描述”—“運行效果”—“實現(xiàn)流程”—“完整代碼”的思路設(shè)計案例流程,打破了傳統(tǒng)的問題解決模式,更符合人們的認知過程。本書注重理論與實際相結(jié)合,內(nèi)容選取適中,全書結(jié)構(gòu)嚴謹、布局合理、重點突出,具有很強的實用性。
本書適合作為高職高專計算機專業(yè)學(xué)生的Java程序設(shè)計課程的教材或參考書,也可作為軟件開發(fā)人員的自學(xué)用書。
以實際的軟件項目“MiniQQ即時通”為開發(fā)主線,介紹相關(guān)技術(shù),具有很強的實用性。
隨著網(wǎng)絡(luò)技術(shù)與移動應(yīng)用技術(shù)的不斷發(fā)展,Java 語言作為一種面向?qū)ο蟪绦蛟O(shè)計語言,以其安全、跨平臺,支持多線程、分布式編程等特點越來越得到廣泛應(yīng)用,尤其是Android移動應(yīng)用開發(fā)也使用Java 作為其編程語言,這從客觀上迫切需要眾多既具有面向?qū)ο箝_發(fā)理論知識,又掌握Java 軟件項目開發(fā)實際應(yīng)用技能的人才,這就需要一本注重軟件開發(fā)實際應(yīng)用技術(shù)的教材。本書正是在“理論夠用、實戰(zhàn)為本”的思想指導(dǎo)下,特為高職高專計算機專業(yè)學(xué)生學(xué)習(xí)和掌握Java 軟件項目開發(fā)技術(shù)而編寫的。
為培養(yǎng)Java 軟件開發(fā)專門人才,本書在介紹面向?qū)ο笏枷牒蚃ava 語言基本知識基礎(chǔ)上,以實際的軟件項目“MiniQQ 即時通”的開發(fā)過程為主線,按Java 規(guī)范編寫程序代碼,從設(shè)計系統(tǒng)的結(jié)構(gòu)、界面開始,逐步引入事件處理、異常處理,將多線程編程、網(wǎng)絡(luò)編程、數(shù)據(jù)庫編程等幾大關(guān)鍵技術(shù)有機地結(jié)合起來,解決軟件項目開發(fā)中的實際問題,將要學(xué)習(xí)的理論知識點融合于要實現(xiàn)的各項功能中。注重對學(xué)生實際應(yīng)用技能和動手能力的培養(yǎng)。書中內(nèi)容按照“引入問題”—“解答問題”—“分析問題”的方式設(shè)計學(xué)習(xí)情景,由軟件項目分解的所有案例均按照“案例描述”—“運行效果”—“實現(xiàn)流程”—“完整代碼”的思路設(shè)計案例流程,打破了傳統(tǒng)的問題解決模式,更符合人們的認知過程。
本書正文共分13 章,主要內(nèi)容包括:
第1章為面向?qū)ο蟪绦蛟O(shè)計及Java 語言初步。本章主要介紹面向?qū)ο箝_發(fā)基本概念,Java程序的編輯、編譯與運行基本過程,并對作為全書案例的軟件項目作了簡要描述。
第2 章為Java 語言基礎(chǔ)。本章主要介紹Java 語言編程基本知識,包括標(biāo)識符、數(shù)據(jù)類型、運算符、語句、數(shù)組和大數(shù)值等基本概念和應(yīng)用。
第3章為軟件結(jié)構(gòu)設(shè)計。本章主要介紹Java 集成開發(fā)環(huán)境Eclipse 的配置、包的概念及應(yīng)用、系統(tǒng)分包原則,并介紹了案例項目的軟件結(jié)構(gòu)設(shè)計。
第4章為界面設(shè)計。本章通過案例項目多個界面的設(shè)計,學(xué)習(xí)基于Java 面向?qū)ο箝_發(fā)基本知識、布局管理器、Swing 基本組件的使用方法。
第5章為事件處理。本章通過對案例項目的事件處理,主要學(xué)習(xí)Java 語言的事件處理過程、接口、事件監(jiān)聽器接口、事件適配器類,以及內(nèi)部類、面向?qū)ο蠖鄳B(tài)性的概念和應(yīng)用。
第6章為異常處理。本章主要通過對案例項目的異常處理,介紹Java 異常處理過程、異常日志管理和單元測試工具JUnit 的使用方法。
第7 章為I/O 文件處理及流。本章主要介紹流的概念、各種文件(包括順序訪問文件、隨機訪問文件和壓縮文件)的讀寫方法。
第8 章為網(wǎng)絡(luò)編程。本章通過案例項目的一個完整網(wǎng)絡(luò)編程過程,介紹HTTP 協(xié)議、基于Socket 的網(wǎng)絡(luò)通信過程。
第9章為多線程編程。本章結(jié)合實例主要介紹線程的概念、線程的狀態(tài)、線程對象的創(chuàng)建、線程的調(diào)度、同步控制、阻塞隊列及線程池等方面的知識。
第10章為泛型與集合。本章主要介紹泛型和幾種集合的基本概念和使用方法。
第11章為數(shù)據(jù)庫編程。本章通過案例項目的完整數(shù)據(jù)操作過程,主要介紹應(yīng)用JDBC 連接數(shù)據(jù)庫、實現(xiàn)Java 應(yīng)用程序與數(shù)據(jù)庫之間的包括增、刪、改、查各種數(shù)據(jù)的操作。
第12 章為MiniQQ 其他主要功能的綜合實現(xiàn)。本章主要介紹案例項目除在之前的各章中已實現(xiàn)的功能外的其他功能的實現(xiàn)過程。
第13 章為部署應(yīng)用程序。本章主要介紹了使用Preferences 類存儲用戶或系統(tǒng)的偏好信息和配置信息,同時也介紹了Java 應(yīng)用程序打包和運行方法。
本書注重理論與實際應(yīng)用相結(jié)合,具有很強的實用性和可操作性。
本書由何曉容、吳紹根主編。
由于編者水平有限,書中難免會有不足之處,敬請廣大讀者不吝賜教。
編 者
2016 年4 月
何曉蓉,女,副教授,廣東輕工職業(yè)技術(shù)學(xué)院計算機工程系,發(fā)表過《高職院校Java程序設(shè)計課程教學(xué)方法的研究》等論文。聯(lián)系電話:13828474000。吳紹根,男,副教授,廣東輕工職業(yè)技術(shù)學(xué)院計算機工程系,主要擔(dān)任軟件工程和Java程序設(shè)計課程的教學(xué),有著豐富的教學(xué)和項目經(jīng)驗,參加多很多項目。
第1 章 面向?qū)ο蟪绦蛟O(shè)計及Java 語言
初步...................................... 1
1.1 面向?qū)ο蟪绦蛟O(shè)計.......................... 1
1.1.1 結(jié)構(gòu)化程序設(shè)計的缺點.......1
1.1.2 面向?qū)ο蠡靖拍?..............2
1.1.3 面向?qū)ο蟪绦蛟O(shè)計過程.......5
1.2 Java 編程語言簡介.......................... 6
1.3 Java 程序運行環(huán)境配置.................. 7
1.4 使用記事本編輯Java 程序........... 11
1.5 Java 程序的運行............................ 11
1.6 MiniQQ 即時通.............................. 12
1.6.1 項目需求............................ 12
1.6.2 MiniQQ 系統(tǒng)數(shù)據(jù)庫結(jié)構(gòu)
設(shè)計.................................... 14
總結(jié) ...................................................... 15
第2 章 Java 語言基礎(chǔ)..................... 16
2.1 Java 應(yīng)用程序完整結(jié)構(gòu)................ 16
2.2 注釋.............................................. 18
2.3 標(biāo)識符........................................... 19
2.4 數(shù)據(jù)類型....................................... 20
2.5 變量和常量................................... 24
2.6 運算符........................................... 26
2.7 語句.............................................. 30
2.8 System 類...................................... 43
2.9 數(shù)組.............................................. 45
2.10 Math 及大數(shù)值............................ 54
總結(jié) ...................................................... 58
第3 章 軟件結(jié)構(gòu)設(shè)計...................... 59
3.1 Java 集成開發(fā)環(huán)境........................ 59
3.2 在Eclipse 集成開發(fā)環(huán)境中構(gòu)建
Java 項目....................................... 67
3.3 包的概念....................................... 69
3.4 包的定義....................................... 70
3.5 包的引用....................................... 71
3.6 系統(tǒng)分包原則............................... 72
3.7 MiniQQ 的包結(jié)構(gòu)設(shè)計.................. 73
總結(jié).. .................................................... 74
第4 章 界面設(shè)計............................. 75
4.1 用戶界面的類型........................... 75
4.2 Java 中提供的GUI 組件類............ 76
4.3 布局管理器................................... 77
4.4 MiniQQ 用戶注冊界面設(shè)計........... 78
4.4.1 類與對象............................ 82
4.4.2 訪問控制符........................ 86
4.4.3 非訪問控制符.................... 89
4.4.4 繼承................................... 92
4.4.5 幾種常見布局管理器的
使用方法............................ 99
4.4.6 swing 基本組件的使用
方法.................................. 104
4.4.7 第三方組件的使用方法... 109
4.5 MiniQQ 用戶登錄界面設(shè)計......... 110
4.5.1 JPasswordField 類............ 113
4.5.2 JOptionPane 類................. 114
4.6 MiniQQ 主界面設(shè)計.................... 115
4.6.1 JTree 類............................ 119
4.6.2 JToolBar 類...................... 123
4.7 MiniQQ 服務(wù)器端管理界面
設(shè)計............................................ 125
總結(jié).. .................................................. 129
第5 章 事件處理........................... 131
5.1 事件處理模型............................. 131
5.2 接口............................................ 135
5.3 事件監(jiān)聽器接口......................... 136
5.4 事件適配器類............................. 143
5.5 內(nèi)部類........................................ 146
5.6 多態(tài)性........................................ 148
總結(jié).. .................................................. 149
第6 章 異常處理........................... 150
6.1 異常分類..................................... 150
6.2 Java 異常處理機制..................... 151
6.3 異常的處理................................. 152
目 錄 CONTENTS
2
Java軟件項目開發(fā)技術(shù)
6.4 異常日志管理............................. 157
6.5 單元測試工具JUnit 的使用........ 162
總結(jié).. ................................................... 166
第7 章 I/O 文件處理及流.............. 168
7.1 File .............................................. 168
7.2 流................................................ 172
7.2.1 字節(jié)流.............................. 172
7.2.2 字符流.............................. 176
7.3 RandomAccessFile ....................... 181
7.4 壓縮文件讀寫............................. 184
總結(jié).. ................................................... 190
第8 章 網(wǎng)絡(luò)編程.......................... 191
8.1 HTTP 協(xié)議................................... 191
8.2 Socket .......................................... 192
8.3 MiniQQ 的服務(wù)器端程序............. 195
8.4 MiniQQ 的用戶注冊請求............. 201
總結(jié).. ................................................... 209
第9 章 多線程編程....................... 210
9.1 進程與線程................................. 210
9.2 線程的狀態(tài)................................. 210
9.3 線程對象的創(chuàng)建......................... 212
9.4 線程的調(diào)度................................. 213
9.5 線程的優(yōu)先級............................. 215
9.6 線程的同步控制......................... 217
9.6.1 競爭的實例...................... 217
9.6.2 synchronized 關(guān)鍵字......... 222
9.6.3 鎖對象.............................. 223
9.6.4 條件對象.......................... 226
9.6.5 死鎖................................. 230
9.7 阻塞隊列..................................... 232
9.8 線程池......................................... 235
總結(jié).. ................................................... 238
第10 章 泛型與集合..................... 240
10.1 泛型........................................... 240
10.2 集合........................................... 241
總結(jié).. ................................................... 252
第11 章 數(shù)據(jù)庫編程..................... 253
11.1 JDBC ......................................... 253
11.2 連接數(shù)據(jù)庫............................... 256
11.3 執(zhí)行SQL 語句.......................... 259
11.4 日期與時間............................... 271
11.5 MiniQQ 系統(tǒng)注冊用戶信息....... 275
11.6 MiniQQ 系統(tǒng)用戶登錄.............. 280
11.7 獲取好友列表,加載主界面的
好友樹....................................... 286
總結(jié).. .................................................. 303
第12 章 MiniQQ 其他主要功能的
綜合實現(xiàn)......................... 304
12.1 管理好友分組........................... 304
12.1.1 創(chuàng)建好友分組................ 305
12.1.2 修改好友分組................ 307
12.1.3 刪除好友分組................ 312
12.2 管理好友................................... 316
12.2.1 查找并添加好友............. 316
12.2.2 刪除好友........................ 333
12.3 基于UDP 協(xié)議實現(xiàn)好友之間
即時通信................................... 337
12.3.1 打開聊天窗口................ 339
12.3.2 設(shè)計聊天界面................ 340
12.3.3 發(fā)送消息........................ 347
12.3.4 接收消息........................ 348
12.4 基于TCP 協(xié)議實現(xiàn)好友之間
發(fā)送文件................................... 350
12.5 服務(wù)器端監(jiān)控用戶上線情況.... 359
12.6 服務(wù)器管理端群發(fā)公告消息.... 362
總結(jié).. .................................................. 366
第13 章 部署應(yīng)用程序.................. 367
13.1 Preferences 類............................ 367
13.2 打包Jar 文件............................ 370
13.3 Jar 文件的執(zhí)行......................... 376
總結(jié).. .................................................. 376
參考文獻 ....................................... 377