Java程序設(shè)計語言具有完全面向?qū)ο蟆⒑唵胃咝、與平臺無關(guān)等特點,同時Java內(nèi)建了對網(wǎng)絡(luò)編程、數(shù)據(jù)庫連接、多線程等高級程序設(shè)計任務(wù)的支持。自1995年發(fā)布以來,Java在開發(fā)領(lǐng)域一直高歌猛進,在程序開發(fā)領(lǐng)域的地位一直位于前茅。特別在“互聯(lián)網(wǎng)+”迅速發(fā)展的今天,Java有著非常廣闊的應用領(lǐng)域。本書基于“案例分析——知識學習——案例實現(xiàn)”和“每章案例——綜合案例”的結(jié)構(gòu),本著Java基礎(chǔ)和架構(gòu)應用并重的原則進行編寫,教材內(nèi)容主要包括:Java的淵源和特點、Java編程基礎(chǔ)、Java流程控制與算法、類的結(jié)構(gòu)及應用、面向?qū)ο缶幊袒驹瓌t、多線程應用、Java常用的API和GUI圖形界面等。本書中的程序在JDK 7.0中經(jīng)過驗證,并都給出運行結(jié)果,教材案例通過二維碼輔以微視頻進行在線解讀。本書在編寫過程中,重要內(nèi)容注意提煉,重點內(nèi)容重點提示,使平面教材具有立體感,使讀者便于學習和理解。同時為了教師教學方便,主要的程序代碼都增加了行號。課后習題分為學習內(nèi)容“積木化”的練習和拓展研討題,并提供參考答案,每章內(nèi)容都安排實訓內(nèi)容,便于讀者“用中學,學中用”。本書既可作為大中專學校的Java程序設(shè)計的教材,又可作為Java自學者的入門用書。
楊曉燕,女,浙江萬里學院計算機與信息學院教師,編寫多部教材,榮獲寧波市首屆特色教材、浙江省高校重點建設(shè)教材等。
目 錄
第1章 Java概述1
1.1 Java崛起1
1.2 Java與C、C++3
1.2.1 Java和C++3
1.2.2 Java與C3
1.3 Java語言特點及更新5
1.4 Java程序的類型及其不同的編程模式6
1.5 Java開發(fā)工具入門8
1.5.1 JDK的下載、安裝8
1.5.2 配置環(huán)境變量9
1.5.3 JDK開發(fā)工具簡介11
1.6 Java程序開發(fā)過程11
1.7 實訓18
習題118
問題探究118
第2章 Java編程基礎(chǔ)20
2.1 標識符、關(guān)鍵字和分隔符20
2.1.1 標識符和關(guān)鍵字20
2.1.2 分隔符21
2.2 數(shù)據(jù)類型22
2.2.1 基本數(shù)據(jù)類型23
2.2.2 常量和變量24
2.3 運算符與表達式26
2.3.1 算術(shù)運算符26
2.3.2 賦值運算符27
2.3.3 關(guān)系運算符28
2.3.4 邏輯運算符29
2.3.5 條件運算符29
2.3.6 其他運算符30
2.3.7 運算符的優(yōu)先級30
2.4 Scanner鍵盤輸入30
2.5 案例實現(xiàn)33
習題233
問題探究234
第3章 程序流程控制結(jié)構(gòu)和方法36
3.1 語句和程序流程控制結(jié)構(gòu)36
3.2 選擇結(jié)構(gòu)37
3.2.1 選擇語句37
3.2.2 多選擇結(jié)構(gòu)switch語句41
3.3 循環(huán)結(jié)構(gòu)44
3.3.1 三種循環(huán)語句44
3.3.2 循環(huán)程序結(jié)構(gòu)小結(jié)48
3.3.3 循環(huán)嵌套與continue、break語句48
3.4 算法設(shè)計*51
3.4.1 迭代算法51
3.4.2 窮舉算法52
3.4.3 遞歸算法54
3.5 案例實現(xiàn)55
習題355
問題探究356
第4章 數(shù)組57
4.1 數(shù)組的基本概念57
4.2 一維數(shù)組58
4.2.1 一維數(shù)組的聲明58
4.2.2 一維數(shù)組內(nèi)存申請58
4.2.3 一維數(shù)組的初始化59
4.2.4 測定數(shù)組的長度60
4.2.5 for each語句與數(shù)組61
4.3 二維數(shù)組62
4.3.1 認識二維數(shù)組62
4.3.2 二維數(shù)組的聲明與創(chuàng)建63
4.3.3 二維數(shù)組元素的初始化64
4.3.4 二維數(shù)組的引用65
4.4 案例實現(xiàn)*(課外研學)67
習題470
問題探究471
第5章 Java類和對象73
5.1 面向?qū)ο缶幊?3
5.2 類的描述76
5.2.1 類的定義76
5.2.2 成員變量的訪問控制符78
5.2.3 成員方法79
5.2.4 成員變量和局部變量81
5.2.5 final變量82
5.3 對象的創(chuàng)建與使用82
5.3.1 對象的創(chuàng)建82
5.3.2 對象的比較84
5.3.3 對象的使用85
5.3.4 釋放對象89
5.3.5 Java變量內(nèi)存分配89
5.3.6 匿名對象90
5.4 類的構(gòu)造方法91
5.4.1 構(gòu)造方法的作用和定義91
5.4.2 this引用93
5.5 static變量及static方法99
5.5.1 static變量99
5.5.2 static方法100
5.6 對象初始化過程103
5.7 成員方法106
5.7.1 方法調(diào)用與參數(shù)傳遞方式106
5.7.2 方法重載111
5.7.3 final最終方法和abstract抽象方法113
5.8 復雜程序解決方案和方法113
5.9 案例實現(xiàn)117
習題5120
問題探究5123
第6章 類的繼承和接口126
6.1 類的繼承126
6.1.1 繼承的概念126
6.1.2 創(chuàng)建子類127
6.1.3 關(guān)于父類的構(gòu)造方法128
6.2 成員變量的隱藏和成員方法的重構(gòu)131
6.3 抽象類133
6.4 接口135
6.4.1 接口概述135
6.4.2 接口的定義136
6.4.3 實現(xiàn)接口的類定義136
6.4.4 接口的多態(tài)性139
6.4.5 Java 8接口擴展方法141
6.5 泛型142
6.5.1 泛型的概念和泛型類的聲明142
6.5.2 泛型應用142
6.6 案例實現(xiàn)144
習題6148
問題探究6149
第7章 Java API初步150
7.1 Java SE API官網(wǎng)下載150
7.2 Java輸入/輸出151
7.2.1 標準輸出方法151
7.2.2 命令行參數(shù)輸入法的應用153
7.2.3 流式交互輸入/輸出的應用154
7.2.4 Java I/O基本模型155
7.2.5 文件數(shù)據(jù)的讀/寫157
7.2.6 JOptionPane對話框輸入法159
7.3 字符串類160
7.3.1 創(chuàng)建String對象161
7.3.2 創(chuàng)建StringBuffer對象162
7.3.3 正則表達式與模式匹配實例163
7.3.4 Java中正則表達式常用的語法164
7.3.5 模式匹配方法164
7.4 顏色類與圖形繪制類166
7.4.1 圖形的顏色控制166
7.4.2 類Graphics的基本圖形167
7.5 集合ArrayList170
7.5.1 集合概述170
7.5.2 類ArrayList的應用171
7.5.3 ArrayList的綜合應用174
7.5.4 類Arrays175
7.6 Java 8新特性*177
7.7 Java 9 入門體驗178
7.8 案例實現(xiàn)*(課外研學)181
習題7182
問題探究7183
第8章 包和異常185
8.1 包185
8.1.1 創(chuàng)建包186
8.1.2 類的包外引用187
8.2 異常處理189
8.2.1 異常的基本概念190
8.2.2 異常處理機制193
8.2.3 自定義異常類197
8.2.4 GUI應用程序的異常處理198
8.3 案例實現(xiàn)200
習題8203
問題探究8203
第9章 面向?qū)ο蟪绦蛟O(shè)計的基本原則及初步設(shè)計模式*204
9.1 UML類圖204
9.1.1 類的UML圖205
9.1.2 UML接口表示205
9.1.3 UML依賴關(guān)系205
9.1.4 UML關(guān)聯(lián)關(guān)系206
9.1.5 UML聚合關(guān)系206
9.1.6 UML組合關(guān)系207
9.1.7 泛化關(guān)系207
9.1.8 實現(xiàn)關(guān)系208
9.2 面向?qū)ο蟪绦蛟O(shè)計的基本原則209
9.2.1 發(fā)現(xiàn)變化,封裝變化209
9.2.2 單一職責原則和最少知識原則212
9.2.3 開放—封閉原則212
9.2.4 子類型能夠替換基類型原則213
9.2.5 合成/聚合復用原則215
9.3 案例實現(xiàn)215
習題9219
問題探究9219
第10章 圖形用戶界面221
10.1 圖形用戶界面概述221
10.1.1 圖形用戶界面組件221
10.1.2 組件分類222
10.1.3 常用容器類的應用223
10.2 事件處理227
10.2.1 基本概念227
10.2.2 事件處理機制229
10.2.3 事件處理的實現(xiàn)方式230
10.2.4 適配器類234
10.3 一般組件237
10.3.1 標簽237
10.3.2 按鈕237
10.3.3 文本框238
10.3.4 文本區(qū)238
10.3.5 列表框240
10.3.6 滾動窗格242
10.3.7 復選框和單選按鈕243
10.3.8 滑動條245
10.4 菜單與對話框250
10.4.1 創(chuàng)建菜單250
10.4.2 彈出式菜單254
10.4.3 對話框255
10.5 布局管理器*260
10.5.1 順序布局261
10.5.2 邊界布局261
10.5.3 網(wǎng)格布局262
10.5.4 卡片布局263
10.5.5 手工布局264
10.6 JApplet類的使用265
10.7 Java事件類方法列表266
10.8 案例實現(xiàn)267
習題10271
問題探究10274
第11章 多線程275
11.1 多線程概述275
11.1.1 基本概念276
11.1.2 線程的狀態(tài)與生命周期277
11.1.3 線程的調(diào)度與優(yōu)先級279
11.2 創(chuàng)建和運行線程279
11.2.1 利用Thread類創(chuàng)建線程280
11.2.2 用Runnable接口創(chuàng)建線程282
11.3 線程間的數(shù)據(jù)共享284
11.4 多線程的同步控制*287
11.4.1 線程同步相關(guān)概念287
11.4.2 synchronized應用289
11.4.3 synchronized的進一步說明292
11.5 案例實現(xiàn)293
習題11295
問題探究11296
第12章 綜合案例——聊天通信298
12.1 界面及源代碼298
12.2 應用程序框架分解302
12.2.1 Socket連接的建立303
12.2.2 基于TCP的Socket數(shù)據(jù)通信架構(gòu)305
12.2.3 圖形用戶界面與事件處理界面的設(shè)計308
12.3 網(wǎng)絡(luò)通信基礎(chǔ)知識310
12.3.1 網(wǎng)絡(luò)通信的層次310
12.3.2 通信端口311
12.3.3 Java網(wǎng)絡(luò)編程中主要使用的類和可能產(chǎn)生的異常311
12.3.4 Socket通信模式312
12.3.5 Socket類和ServerSocket類的構(gòu)造方法及常用方法312
12.3.6 API系統(tǒng)中DataInputStream和DataOutputStream的應用313
12.3.7 多線程處理機制315
習題12316
參考文獻317