本書在保持《Java程序設(shè)計(jì)教程》(第2版)基本框架和特色的基礎(chǔ)上,更新了部分章節(jié),并對(duì)一些知識(shí)點(diǎn)進(jìn)行了擴(kuò)充,更便于讀者學(xué)習(xí)。全書內(nèi)容分為12章,包括Java概述,Java語言基礎(chǔ),Java控制結(jié)構(gòu)、數(shù)組和字符串,Java面向?qū)ο缶幊,接口、?nèi)部類和Java API基礎(chǔ),異常處理,Applet程序,圖形用戶界面,I/O流,多線程,訪問數(shù)據(jù)庫以及網(wǎng)絡(luò)編程等。 本書既適合作為普通高等學(xué)校計(jì)算機(jī)、網(wǎng)絡(luò)工程等專業(yè)學(xué)生的Java程序設(shè)計(jì)課程教材,也適合從事軟件開發(fā)的技術(shù)人員培訓(xùn)、自學(xué)使用。
作為省級(jí)規(guī)劃教材,本書既適合作為普通高等學(xué)校計(jì)算機(jī)、網(wǎng)絡(luò)工程等專業(yè)學(xué)生的Java程序設(shè)計(jì)課程教材,也適合從事軟件開發(fā)的技術(shù)人員培訓(xùn)、自學(xué)使用。
隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)絡(luò)程序開發(fā)大步邁進(jìn)。在此背景下,Java應(yīng)運(yùn)而生。由于其具有跨平臺(tái)性、面向?qū)ο、分布性和安全性等諸多特點(diǎn),所以確立了無與倫比的網(wǎng)絡(luò)編程優(yōu)勢(shì)。從20世紀(jì)90年代初Oak的問世至今,已經(jīng)跨越了約三十年,Java在電子商務(wù)、遠(yuǎn)程醫(yī)療、網(wǎng)上銀行、虛擬課堂等許多應(yīng)用系統(tǒng)基本上廣泛使用。
當(dāng)前,普通高等學(xué)校的計(jì)算機(jī)、網(wǎng)絡(luò)工程等專業(yè)都開設(shè)了Java程序設(shè)計(jì)課程。此外,不少相關(guān)專業(yè)也把Java語言列入教學(xué)計(jì)劃。教材是體現(xiàn)教學(xué)內(nèi)容的知識(shí)載體,是進(jìn)行教學(xué)的基本工具。本書在編寫時(shí),從現(xiàn)階段高校使用多的Java系列教材中吸取經(jīng)驗(yàn),結(jié)合作者在長期教學(xué)過程中的體會(huì)和積累,旨在向高校學(xué)生奉獻(xiàn)一本有特色的教材,向工程技術(shù)人員和其他有興趣的讀者提供一本有價(jià)值的參考書。本書具有以下特點(diǎn)。
1. 面向?qū)嵱眯录夹g(shù)
本書介紹Java程序設(shè)計(jì)的多項(xiàng)實(shí)用技術(shù),采用JDK 6、Eclipse、MySQL作為Java開發(fā)運(yùn)行環(huán)境,并將其反映在教材中。強(qiáng)調(diào)學(xué)以致用,將新技術(shù)與理論、實(shí)踐相結(jié)合,注重培養(yǎng)學(xué)生的能力和創(chuàng)新意識(shí)。
2. 涵蓋內(nèi)容較廣泛
本書由淺入深、循序漸進(jìn)地介紹了Java程序設(shè)計(jì)的基本概念、方法和應(yīng)用,涵蓋了Java的語法要點(diǎn)和知識(shí)要素。對(duì)于Java系統(tǒng)開發(fā)使用的訪問數(shù)據(jù)庫技術(shù)、圖形用戶界面等,也進(jìn)行了較為詳細(xì)的說明。
3. 例題講解條理化
本書例題十分豐富,典型實(shí)例緊密結(jié)合知識(shí)要點(diǎn)。全部例子包括題目要求、程序代碼、程序運(yùn)行結(jié)果和程序分析。以此編寫方式,有助于讀者掌握J(rèn)ava開發(fā)要領(lǐng),快速熟悉重點(diǎn)和難點(diǎn)部分。書中程序代碼都經(jīng)過認(rèn)真調(diào)試,可以直接運(yùn)行,方便讀者上機(jī)操作。
本書是根據(jù)專業(yè)建設(shè)的需要,對(duì)第2版進(jìn)行修訂而形成的。本書保持了第2版的基本框架和特色,更新了部分章節(jié),并對(duì)一些知識(shí)點(diǎn)進(jìn)行了擴(kuò)充,更便于讀者學(xué)習(xí)。本書內(nèi)容分為12章,包括Java概述,Java語言基礎(chǔ),Java控制結(jié)構(gòu)、數(shù)組和字符串,Java面向?qū)ο缶幊,接口、?nèi)部類和Java API基礎(chǔ),異常處理,Applet程序,圖形用戶界面,I/O流,多線程,訪問數(shù)據(jù)庫以及網(wǎng)絡(luò)編程等。另外,在每章的后均列出若干習(xí)題,供讀者練習(xí)。為了便于說明,為每一行程序代碼都設(shè)置了序號(hào),這些序號(hào)標(biāo)記不能作為Java程序的組成部分,實(shí)際程序開發(fā)時(shí)將其去掉即可。
本書由牛曉太、王紅梅、陳廣智、齊艷珂、王亞楠、齊兵輝、程文靜編著,由牛曉太負(fù)責(zé)全書的統(tǒng)稿工作。
在本書的編寫和出版過程中,參閱了大量書籍、文獻(xiàn)等資料,得到了清華大學(xué)出版社的支持和幫助。在此表示衷心的感謝。
盡管書稿是作者多年教學(xué)經(jīng)驗(yàn)的總結(jié),但由于時(shí)間倉促,作者知識(shí)水平有限,書中難免存在疏漏和不足,懇請(qǐng)讀者批評(píng)指正,以便使本書得以改進(jìn)和完善。
編者2021年4月
牛曉太 教授 從事計(jì)算機(jī)應(yīng)用技術(shù)教學(xué)二十多年,近年來發(fā)表論文30余篇,獲得河南省自然科學(xué)優(yōu)秀學(xué)術(shù)論文二等獎(jiǎng)、三等獎(jiǎng)4項(xiàng);主持省部級(jí)項(xiàng)目2項(xiàng),參與3項(xiàng);獲得河南省科技成果5項(xiàng)。撰寫學(xué)術(shù)專著和教材多部。
第1章Java概述1
1.1Java簡介1
1.1.1Java的產(chǎn)生1
1.1.2Java的特點(diǎn)1
1.1.3Java的三大平臺(tái)2
1.2Java的開發(fā)和運(yùn)行環(huán)境3
1.2.1Java虛擬機(jī)3
1.2.2JDK的安裝3
1.2.3環(huán)境變量的設(shè)置5
1.2.4Java API文檔6
1.3Java程序開發(fā)實(shí)例7
1.3.1Java應(yīng)用程序?qū)嵗?
1.3.2Java小程序?qū)嵗?0
1.4Eclipse開發(fā)平臺(tái)11
1.4.1Eclipse安裝11
1.4.2Eclipse平臺(tái)的項(xiàng)目開發(fā)12
習(xí)題114第2章Java語言基礎(chǔ)15
2.1標(biāo)識(shí)符和關(guān)鍵字15
2.1.1標(biāo)識(shí)符15
2.1.2關(guān)鍵字16
2.1.3分隔符16
2.1.4注釋符17
2.2數(shù)據(jù)類型、常量與變量18
2.2.1數(shù)據(jù)類型18
2.2.2常量19
2.2.3變量19
2.3運(yùn)算符20
2.3.1算術(shù)運(yùn)算符21
2.3.2關(guān)系運(yùn)算符22
2.3.3邏輯運(yùn)算符22
2.3.4位運(yùn)算符24
2.3.5賦值運(yùn)算符24
2.3.6三元運(yùn)算符26
2.3.7其他運(yùn)算符26
2.4表達(dá)式27
2.4.1運(yùn)算符的優(yōu)先級(jí)27
2.4.2數(shù)據(jù)類型轉(zhuǎn)換28
2.4.3應(yīng)用舉例29
習(xí)題232第3章Java控制結(jié)構(gòu)、數(shù)組和字符串34
3.1順序結(jié)構(gòu)34
3.1.1語句和語句塊34
3.1.2順序結(jié)構(gòu)35
3.2分支結(jié)構(gòu)35
3.2.1if語句36
3.2.2if語句的嵌套38
3.2.3多分支if語句39
3.2.4switch語句40
3.3循環(huán)結(jié)構(gòu)42
3.3.1for語句42
3.3.2while語句45
3.3.3do語句46
3.3.4循環(huán)嵌套47
3.4轉(zhuǎn)移語句50
3.4.1break語句50
3.4.2continue語句51
3.5數(shù)組52
3.5.1數(shù)組的聲明52
3.5.2數(shù)組的初始化52
3.5.3數(shù)組元素的引用55
3.6字符串55
3.6.1字符串的聲明和初始化56
3.6.2字符串的處理56
習(xí)題357第4章Java面向?qū)ο缶幊?0
4.1面向?qū)ο缶幊谈攀?0
4.1.1面向?qū)ο蟮某绦蛟O(shè)計(jì)方法60
4.1.2類和對(duì)象60
4.1.3面向?qū)ο缶幊痰奶攸c(diǎn)60
4.1.4Java程序設(shè)計(jì)語言61
4.2類61
4.2.1類的定義61
4.2.2成員變量62
4.2.3成員方法62
4.2.4構(gòu)造方法67
4.3對(duì)象69
4.3.1對(duì)象的聲明69
4.3.2對(duì)象的創(chuàng)建及初始化69
4.3.3對(duì)象的使用70
4.3.4對(duì)象的銷毀74
4.3.5this關(guān)鍵字75
4.4類的封裝性76
4.4.1包76
4.4.2訪問權(quán)限79
4.4.3訪問器81
4.4.4靜態(tài)成員82
4.5類的繼承性84
4.5.1繼承的概念84
4.5.2子類85
4.5.3super關(guān)鍵字87
4.5.4終類和抽象類89
4.6類的多態(tài)性90
4.6.1多態(tài)的概念90
4.6.2方法重載90
4.6.3方法覆蓋92
4.6.4綁定93
習(xí)題494第5章接口、內(nèi)部類和Java API基礎(chǔ)99
5.1接口99
5.1.1接口的概念99
5.1.2接口的聲明99
5.1.3接口的實(shí)現(xiàn)100
5.1.4常用的系統(tǒng)接口103
5.2內(nèi)部類和內(nèi)部接口104
5.2.1內(nèi)部類和內(nèi)部接口的概念104
5.2.2內(nèi)部類的定義和使用105
5.3java.lang包中的基礎(chǔ)類108
5.3.1Object類108
5.3.2System類109
5.3.3Math類110
5.3.4數(shù)據(jù)類型類110
5.4java.util包中的工具類112
5.4.1日期類112
5.4.2Random類113
5.4.3Scanner類114
5.4.4集合類114
習(xí)題5117第6章異常處理120
6.1異常的概念120
6.2異常類122
6.2.1Error類及其子類123
6.2.2Exception類及其子類123
6.3異常處理124
6.3.1try…catch…finally語句124
6.3.2拋出異常128
6.4創(chuàng)建自己的異常類130
習(xí)題6131第7章Applet程序135
7.1Applet簡介135
7.1.1Java Applet說明135
7.1.2Applet的形式及其類的層次135
7.2Applet的生命周期和顯示方法136
7.2.1Applet的生命周期136
7.2.2Applet的顯示方法137
7.2.3Applet的編寫與執(zhí)行138
7.3HTML中的Applet標(biāo)記139
7.4Applet應(yīng)用舉例140
習(xí)題7143第8章圖形用戶界面146
8.1AWT146
8.1.1AWT簡介146
8.1.2AWT組件147
8.2事件處理151
8.2.1事件處理機(jī)制152
8.2.2事件處理舉例153
8.3Swing160
8.3.1Swing簡介160
8.3.2Swing組件160
8.4布局管理器179
8.4.1FlowLayout布局管理器179
8.4.2BorderLayout布局管理器181
8.4.3GridLayout布局管理器183
8.4.4CardLayout布局管理器184
8.5外觀設(shè)計(jì)和圖形繪制185
8.5.1外觀設(shè)計(jì)185
8.5.2圖形繪制186
習(xí)題8189第9章I/O流192
9.1I/O流概述192
9.2字節(jié)流192
9.2.1InputStream類和OutputStream類的子類193
9.2.2InputStream類和OutputStream類的方法194
9.2.3FileInputStream類和FileOutputStream類195
9.2.4DataInputStream類和DataOutputStream類197
9.2.5BufferedInputStream類和BufferedOutputStream類199
9.2.6ByteArrayInputStream類和ByteArrayOutputStream類201
9.2.7RandomAccessFile類204
9.2.8SequenceInputStream類206
9.2.9Java標(biāo)準(zhǔn)輸入輸出207
9.3字符流209
9.3.1Reader類和Writer類的子類209
9.3.2Reader類和Writer類的方法210
9.3.3InputStreamReader類和OutputStreamWriter類211
9.3.4FileReader類和FileWriter類213
9.3.5BufferedReader類和BufferedWriter類215
9.3.6StringReader類和StringWriter類217
9.4File類219
9.4.1文件信息獲取和屬性更改219
9.4.2文件和目錄操作222
習(xí)題9223第10章多線程225
10.1線程的概念225
10.1.1多線程編程的優(yōu)勢(shì)225
10.1.2多線程編程的難點(diǎn)226
10.2線程的實(shí)現(xiàn)226
10.2.1創(chuàng)建Java線程226
10.2.2Java線程的狀態(tài)229
10.2.3Java線程的優(yōu)先級(jí)230
10.2.4守護(hù)線程230
10.2.5終止另一個(gè)線程231
10.3線程同步233
10.3.1同步訪問共享資源233
10.3.2協(xié)作完成任務(wù)236
習(xí)題10239第11章訪問數(shù)據(jù)庫241
11.1數(shù)據(jù)庫簡介241
11.1.1關(guān)系型數(shù)據(jù)庫系統(tǒng)概述241
11.1.2MySQL數(shù)據(jù)庫簡介243
11.1.3MySQL Workbench簡介248
11.2使用JDBC進(jìn)行數(shù)據(jù)庫編程248
11.2.1JDBC架構(gòu)簡介249
11.2.2使用JDBC訪問數(shù)據(jù)庫249
11.2.3JDBC高級(jí)特性258
習(xí)題11266第12章網(wǎng)絡(luò)編程268
12.1網(wǎng)絡(luò)編程基礎(chǔ)268
12.1.1IP地址與端口號(hào)的意義268
12.1.2IP地址與端口號(hào)的表示269
12.1.3客戶服務(wù)器工作模式271
12.1.4TCP與UDP通信271
12.2URL類的使用271
12.2.1URL基礎(chǔ)知識(shí)271
12.2.2URL類的使用272
12.2.3通過URLConnection實(shí)現(xiàn)雙向通信275
12.3基于TCP的網(wǎng)絡(luò)通信275
12.3.1客戶端與服務(wù)器端通信276
12.3.2多客戶端通信281
12.4基于UDP的網(wǎng)絡(luò)通信284
12.4.1UDP數(shù)據(jù)報(bào)文包284
12.4.2UDP通信285
習(xí)題12289參考文獻(xiàn)291