內容簡介
全書著眼於Java語言的特點,細緻、全面地介紹了Java的基本概念、方法和套用。本著循序漸進、學以致用的思路編排知識要點,輔之以典型套用實例,逐例分析運行結果和程式代碼,便於讀者儘快熟悉和掌握。本書共分為12章,包括Java概述、Java基本語法、Java流程控制、Java面向對象編程、接口、內部類和Java API基礎、異常處理、Applet程式、圖形用戶界面、輸入輸出流、多執行緒、訪問資料庫、網路程式設計等內容。另外,在每章的最後均列出習題若干,供讀者參考。本書既適合作為普通高等院校計算機、網路工程等專業本科生(或高職高專學生)的Java程式設計課程教材,也適合從事軟體開發的技術人員培訓、自學使用。
編輯推薦
Java保持“常青樹”狀態,也由於它不斷地發展自我、超越自我,從而在許許多多領域成為了系統研發的主流平台。例如電子商務、遠程醫療、網上銀行、虛擬課堂等等,基本上都使用Java技術開發。
當前,普通高等院校計算機、網路工程等專業都開設了Java程式設計課程,還有其他為數不少的專業也把Java語言列入教學計畫。教材是體現教學內容的知識載體,是進行教學的基本工具。牛曉太主編的《Java程式設計教程(高等學校計算機課程規劃教材)》在編寫時,從現階段高校使用最多的Java系列教材中吸取經驗,結合作者在長期教學過程中的體會和積累,旨在向高校學生奉獻一本有特色的教材,以及向工程技術人員和其他有興趣的讀者提供一本有價值的參考書。
目錄
第1章Java概述1
1.1Java簡介1
1.1.1Java的產生1
1.1.2Java的特點1
1.1.3Java三大平台2
1.2Java的開發和運行環境3
1.2.1Java虛擬機3
1.2.2JDK的安裝3
1.2.3環境變數的設定5
1.2.4JavaAPI文檔6
1.3Java程式開發實例7
1.3.1Java應用程式實例8
1.3.2Java小程式實例10
1.4Eclipse開發平台11
1.4.1Eclipse安裝11
1.4.2Eclipse平台的項目開發12
習題114第2章Java基本語法15
2.1標識符和關鍵字15
2.1.1標識符15
2.1.2關鍵字15
2.1.3分隔設定16
2.1.4注釋符16
2.2數據類型、變數與常量17
2.2.1數據類型17
2.2.2變數18
2.2.3常量18
2.3運算符和表達式19
2.3.1運算符19
2.3.2運算符的優先權25
2.3.3表達式25
2.4數據類型的轉換29
習題230第3章Java流程控制32
3.1語句與程式結構32
3.1.1語句32
3.1.2程式結構33
3.2順序結構33
3.3選擇結構34
3.3.1if單分支結構34
3.3.2if雙分支結構35
3.3.3if多分支結構36
3.3.4if的嵌套結構37
3.3.5switch語句39
3.4循環結構42
3.4.1for語句43
3.4.2while語句45
3.4.3do…while語句47
3.4.4循環嵌套48
3.5跳轉結構50
3.5.1中斷語句break50
3.5.2繼續語句continue52
3.6數組套用53
3.6.1數組的定義53
3.6.2數組的運算55
3.6.3套用舉例56
3.7字元串處理59
3.7.1字元串的定義和賦值59
3.7.2字元串的基本運算60
3.7.3套用舉例62
習題363第4章Java面向對象編程67
4.1面向對象編程概述67
4.1.1面向對象的程式設計方法67
4.1.2類和對象67
4.1.3面向對象編程的特點67
4.1.4Java程式設計語言68
4.2類68
4.2.1類的定義68
4.2.2成員變數69
4.2.3成員方法70
4.2.4構造方法74
4.3對象76
4.3.1對象的聲明76
4.3.2對象的創建及初始化77
4.3.3對象的使用77
4.3.4對象的銷毀81
4.3.5this關鍵字81
4.4類的封裝性83
4.4.1包83
4.4.2訪問許可權85
4.4.3訪問器87
4.4.4靜態成員88
4.5類的繼承性90
4.5.1繼承的概念90
4.5.2子類90
4.5.3super關鍵字93
4.5.4最終類和抽象類95
4.6類的多態性96
4.6.1多態的概念96
4.6.2方法重載96
4.6.3方法覆蓋98
4.6.4綁定99
習題4100第5章接口、內部類和JavaAPI基礎105
5.1接口105
5.1.1接口的概念105
5.1.2接口的聲明105
5.1.3接口的實現106
5.1.4常用系統接口109
5.2內部類110
5.2.1內部類和內部接口的概念110
5.2.2內部類的定義和使用111
5.3java.lang包中的基礎類112
5.3.1Object類112
5.3.2System類112
5.3.3Math類113
5.3.4數據類型類114
5.4java.util包中的工具類115
5.4.1日期類116
5.4.2Random類116
5.4.3Scanner類117
5.4.4集合類117
習題5119
第6章異常處理121
6.1異常的概念121
6.2異常類123
6.2.1Error類及其子類124
6.2.2Exception類及其子類124
6.3異常處理125
6.3.1try…catch…finally語句125
6.3.2拋出異常129
6.4創建自己的異常類131
習題6132第7章Applet程式136
7.1Applet簡介136
7.1.1JavaApplet說明136
7.1.2Applet的形式及其類的層次136
7.2Applet生命周期和顯示方法137
7.2.1Applet生命周期137
7.2.2Applet類的顯示方法138
7.2.3Applet的編寫與執行139
7.3HTML中的Applet標記140
7.4Applet套用舉例141
習題7144第8章圖形用戶界面147
8.1AWT與Swing147
8.1.1AWT概述147
8.1.2AWT的基本組件148
8.1.3Swing概述150
8.1.4AWT與Swing的區別151
8.2事件處理151
8.2.1Java中的事件處理機制152
8.2.2鍵盤事件155
8.2.3滑鼠事件157
8.2.4其他常用事件160
8.3布局管理器172
8.3.1布局管理器概述173
8.3.2常用布局173
8.4Swing組件176
8.4.1Swing包中類的關係176
8.4.2Swing中的容器177
8.4.3Swing中的常用組件188
8.4.4Swing中的新增組件191
8.4.5Swing事件概述195
習題8196第9章輸入輸出流198
9.1I/O流概述198
9.1.1數據流概念198
9.1.2Java數據流介紹198
9.2位元組流201
9.2.1InputStream和OutputStream201
9.2.2FileInputStream和FileOutputStream202
9.2.3RandomAccessFile205
9.2.4BufferedInputStream和BufferedOutputStream207
9.2.5ByteArrayInputStream和ByteArrayOutputStream209
9.2.6SequenceInputStream212
9.2.7標準輸入輸出流213
9.3字元流214
9.3.1Reader和Writer215
9.3.2InputStreamReader和OutputStreamWriter215
9.3.3FileReader和FileWriter218
9.3.4StringReader和StringWriter218
9.3.5其他類型的字元流220
9.4檔案的處理221
9.4.1檔案信息獲取和屬性更改221
9.4.2檔案和目錄操作224
9.5串列化225
9.5.1串列化的概念225
9.5.2串列化的方法226
習題9227第10章多執行緒229
10.1執行緒的概念229
10.1.1多執行緒編程的優勢229
10.1.2多執行緒編程的難點230
10.2執行緒的實現230
10.2.1創建Java執行緒230
10.2.2Java執行緒的狀態233
10.2.3Java執行緒的優先權234
10.2.4守護執行緒234
10.2.5終止另一個執行緒235
10.3執行緒同步237
10.3.1同步訪問共享資源237
10.3.2協作完成任務240
習題10243第11章訪問資料庫245
11.1資料庫簡介245
11.1.1關係型資料庫系統概述245
11.1.2MySQL資料庫簡介247
11.1.3MySQLWorkbench簡介252
11.2使用JDBC進行資料庫編程252
11.2.1JDBC架構簡介253
11.2.2使用JDBC訪問資料庫253
11.2.3JDBC高級特性262
習題11270第12章網路程式設計272
12.1網路的基本概念272
12.1.1IP位址與連線埠號272
12.1.2Java中IP位址及連線埠號表示273
12.1.3客戶伺服器工作模式275
12.1.4TCP與UDP通信275
12.2URL的使用275
12.2.1URL的表示275
12.2.2URL類276
12.2.3通過URLConnection實現雙向通信278
12.3基於TCP的網路通信279
12.3.1客戶端與伺服器端通信279
12.3.2多客戶端通信285
12.4基於UDP的網路通信287
12.4.1UDP數據報文包287
12.4.2UDP通信288
習題12292
第1章C++入門1
1.1C++簡介1
1.1.1C++的產生與發展1
1.1.2C++的特點2
1.2簡單的C++程式3
1.2.1C++程式結構3
1.2.2輸入與輸出5
1.2.3注釋6
1.3C++程式的上機執行過程7
1.4程式設計語言介紹8
1.4.1機器語言8
1.4.2彙編語言9
1.4.3高級語言10
習題113第2章基本數據類型與表達式14
2.1字元集與標識符14
2.1.1字元集14
2.1.2標識符14
2.1.3關鍵字15
2.2基本數據類型16
2.2.1整型16
2.2.2字元型16
2.2.3布爾型17
2.2.4浮點型17
2.3常量18
2.3.1數值型常量18
2.3.2字元型常量19
2.4變數20
2.4.1變數的定義20
2.4.2常變數21
2.5運算符與表達式23
2.5.1算術運算符與算術表達式23
2.5.2賦值運算符與賦值表達式24
2.5.3逗號運算符與逗號表達式24
2.5.4自增自減運算符25
2.5.5類型轉換25
2.5.6位運算符與位運算表達式27
2.6計算機中的數據表示29
2.6.1計算機中的數制29
2.6.2數值型數據的表示31
2.6.3字元型數據的編碼表示33
習題233第3章語句與結構化程式設計34
3.1功能語句與順序結構程式設計34
3.1.1賦值語句34
3.1.2空語句34
3.1.3複合語句34
3.1.4順序結構程式設計34
3.2分支語句與分支結構程式設計35
3.2.1關係表達式和邏輯表達式35
3.2.2if語句38
3.2.3if…else語句38
3.2.4條件運算符與條件表達式40
3.2.5switch語句41
3.3循環語句與循環結構程式設計42
3.3.1for循環語句43
3.3.2do…while循環語句45
3.3.3while循環語句47
3.3.4循環語句的嵌套48
3.4轉移語句49
3.4.1break語句49
3.4.2continue語句49
3.4.3goto語句50
3.5程式舉例51
3.6算法與程式設計58
3.6.1算法設計與分析58
3.6.2程式設計風格61
習題362第4章數組與字元串63
4.1數組的定義與使用63
4.1.1一維數組的定義與使用63
4.1.2二維數組的定義與使用64
4.2數組的初始化66
4.3數組套用舉例67
4.3.1一維數組套用68
4.3.2二維數組套用73
4.4字元串76
4.4.1字元串變數的定義與使用76
4.4.2字元串變數的輸入輸出77
4.4.3字元串運算78
4.4.4字元串數組79
4.5字元數組81
4.6動態數組82
4.7靜態數組訪問的下標越界問題84
習題485第5章函式86
5.1函式定義86
5.2函式調用與函式聲明87
5.2.1函式調用87
5.2.2函式聲明88
5.3函式的參數傳遞90
5.3.1值傳遞90
5.3.2引用傳遞91
5.3.3函式的默認形參值92
5.4函式的嵌套與遞歸93
5.4.1函式嵌套94
5.4.2函式遞歸94
5.5數組作函式參數97
5.5.1數組元素作函式參數97
5.5.2一維數組名作函式參數98
5.5.3二維數組名作函式參數99
5.6內聯函式100
5.7重載函式101
5.8系統函式103
習題5104第6章指針106
6.1指針變數106
6.1.1記憶體單元地址106
6.1.2指針變數的定義107
6.2指針的賦值與運算107
6.2.1指針的賦值107
6.2.2指針的運算108
6.3指針作為函式參數110
6.4指針與數組111
6.4.1數組的地址111
6.4.2指針與一維數組111
6.4.3指針與二維數組112
6.4.4指針數組114
6.5動態記憶體分配116
6.6函式指針119
習題6122第7章自定義數據類型123
7.1結構體類型123
7.1.1結構體類型的定義123
7.1.2結構體變數的定義與初始化124
7.1.3結構體變數的引用125
7.2結構體套用127
7.2.1結構體數組127
7.2.2結構體和指針129
7.2.3結構體和函式131
7.3共用體134
7.3.1共用體的定義135
7.3.2共用體的套用136
7.4鍊表137
7.4.1線性表137
7.4.2線性鍊表138
7.4.3線性鍊表的操作139
7.5枚舉類型144
7.5.1枚舉類型和枚舉變數的定義144
7.5.2枚舉變數的賦值和引用145
7.5.3枚舉變數值的輸入與輸出145
習題7147第8章C++程式結構149
8.1C++程式構成149
8.2預處理命令150
8.2.1宏定義150
8.2.2檔案包含151
8.2.3條件編譯153
8.3變數的作用域156
8.3.1局部變數156
8.3.2全局變數156
8.4變數的存儲類別157
8.4.1局部自動變數158
8.4.2局部暫存器變數159
8.4.3局部靜態變數159
8.4.4外部變數聲明160
8.5內部函式與外部函式162
8.5.1內部函式162
8.5.2外部函式163
習題8164第9章類和對象165
9.1面向對象程式設計概述165
9.1.1面向對象的概念165
9.1.2面向對象程式設計的特點165
9.1.3面向對象與面向過程的區別166
9.2類和對象167
9.2.1類的定義167
9.2.2對象的定義170
9.2.3對象成員的訪問171
9.3構造函式173
9.3.1不帶參數的構造函式173
9.3.2帶參數的構造函式174
9.3.3帶默認值的構造函式175
9.3.4帶初始化表的構造函式176
9.3.5構造函式的重載178
9.4析構函式180
9.5複製構造函式183
9.5.1對象的賦值183
9.5.2對象的複製184
9.6對象數組188
9.7const對象和const成員190
9.8成員函式存儲與this指針192
9.9類靜態成員194
9.9.1靜態數據成員194
9.9.2靜態成員函式195
9.10友元函式與友元類197
9.10.1友元函式199
9.10.2友元類201
習題9202第10章繼承與派生203
10.1繼承與派生的概念203
10.2派生類的聲明204
10.2.1派生類的聲明204
10.2.2派生類的構成205
10.3派生類成員的訪問特性207
10.3.1公有繼承207
10.3.2私有繼承208
10.3.3保護繼承208
10.3.4多級派生時的訪問特性209
10.4派生類的構造函式和析構函式212
10.4.1簡單派生類的構造函式213
10.4.2有子對象的派生類的構造函式215
10.4.3派生類的析構函式216
10.5基類與派生類的轉換218
10.5.1派生類對象的值可以賦給基類對象218
10.5.2派生類對象可以作為基類對象使用219
10.6類的繼承與組合220
10.7繼承在軟體開發中的作用221
10.8多基類繼承224
10.8.1定義多基類繼承224
10.8.2多繼承派生類的構造函式226
10.8.3基類成員名衝突227
10.8.4虛基類228
習題10232第11章運算符重載233
11.1運算符重載的實現233
11.2運算符重載規則237
11.3運算符重載函式238
11.4重載流插入和流提取運算符241
11.5數據的類型轉換244
11.5.1用轉換構造函式實現類型轉換245
11.5.2用類型轉換函式實現類型轉換247
習題11250第12章多態與虛函式251
12.1多態性和綁定251
12.2虛函式254
12.2.1虛函式的定義254
12.2.2虛析構函式255
12.3純虛函式與抽象類257
12.3.1純虛函式257
12.3.2抽象類260
12.4動態綁定與虛函式表263
12.4.1多態類與非多態類263
12.4.2動態綁定的實現265
習題12267第13章模板268
13.1模板的引入268
13.2函式模板269
13.2.1函式模板的定義269
13.2.2函式模板的調用269
13.2.3函式模板的重載271
13.3類模板274
13.3.1類模板的定義和使用274
13.3.2類模板的繼承275
13.4類模板套用275
13.4.1數組類模板275
13.4.2線性鍊表類模板278
習題13281第14章輸入輸出流和檔案282
14.1輸入輸出與流282
14.2C++的流類和流對象283
14.3標準輸入輸出流283
14.3.1標準輸出流284
14.3.2標準輸入流285
14.3.3流成員函式287
14.4設定輸入輸出格式290
14.5檔案處理294
14.5.1檔案的打開和關閉294
14.5.2對ASCII碼檔案的讀寫296
14.5.3對二進制檔案的讀寫298
習題14302
第15章異常處理303
15.1異常處理的基本思路303
15.2C++異常處理的實現306
15.2.1簡單異常處理306
15.2.2類類型異常處理309
習題15311
第16章綜合實例312
16.1用面向過程的方法設計人人對弈程式313
16.2用面向對象的方法設計人人對弈程式329
16.3擴展遊戲程式343
習題16344
第17章集成開發環境345
17.1VisualStudio2010的安裝與啟動345
17.2VisualStudio2010的操作界面346
17.3創建和打開項目349
17.3.1創建項目349
17.3.2在解決方案中新建項目350
17.3.3在項目中添加項351
17.3.4打開項目355
17.3.5編輯源程式356
17.4生成和運行項目356
17.5調試程式357
習題17364附錄AASCII碼錶365
參考文獻366