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