Java程序設計語言具有完全面向對象、簡單高效、與平臺無關等特點,同時Java內建了對網(wǎng)絡編程、數(shù)據(jù)庫連接、多線程等高級程序設計任務的支持。自1995年發(fā)布以來,Java在開發(fā)領域一直高歌猛進,在程序開發(fā)領域的地位一直位于前茅。特別在“互聯(lián)網(wǎng)+”迅速發(fā)展的今天,Java有著非常廣闊的應用領域。本書基于“案例分析——知識學習——案例實現(xiàn)”和“每章案例——綜合案例”的結構,本著Java基礎和架構應用并重的原則進行編寫,教材內容主要包括:Java的淵源和特點、Java編程基礎、Java流程控制與算法、類的結構及應用、面向對象編程基本原則、多線程應用、Java常用的API和GUI圖形界面等。本書中的程序在JDK 7.0中經(jīng)過驗證,并都給出運行結果,教材案例通過二維碼輔以微視頻進行在線解讀。本書在編寫過程中,重要內容注意提煉,重點內容重點提示,使平面教材具有立體感,使讀者便于學習和理解。同時為了教師教學方便,主要的程序代碼都增加了行號。課后習題分為學習內容“積木化”的練習和拓展研討題,并提供參考答案,每章內容都安排實訓內容,便于讀者“用中學,學中用”。本書既可作為大中專學校的Java程序設計的教材,又可作為Java自學者的入門用書。
楊曉燕,女,浙江萬里學院計算機與信息學院教師,編寫多部教材,榮獲寧波市首屆特色教材、浙江省高校重點建設教材等。
目 錄
第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編程基礎20
2.1 標識符、關鍵字和分隔符20
2.1.1 標識符和關鍵字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 算術運算符26
2.3.2 賦值運算符27
2.3.3 關系運算符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章 程序流程控制結構和方法36
3.1 語句和程序流程控制結構36
3.2 選擇結構37
3.2.1 選擇語句37
3.2.2 多選擇結構switch語句41
3.3 循環(huán)結構44
3.3.1 三種循環(huán)語句44
3.3.2 循環(huán)程序結構小結48
3.3.3 循環(huán)嵌套與continue、break語句48
3.4 算法設計*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ù)組內存申請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 面向對象編程73
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變量內存分配89
5.3.6 匿名對象90
5.4 類的構造方法91
5.4.1 構造方法的作用和定義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 方法調用與參數(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 關于父類的構造方法128
6.2 成員變量的隱藏和成員方法的重構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章 面向對象程序設計的基本原則及初步設計模式*204
9.1 UML類圖204
9.1.1 類的UML圖205
9.1.2 UML接口表示205
9.1.3 UML依賴關系205
9.1.4 UML關聯(lián)關系206
9.1.5 UML聚合關系206
9.1.6 UML組合關系207
9.1.7 泛化關系207
9.1.8 實現(xiàn)關系208
9.2 面向對象程序設計的基本原則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 線程的調度與優(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 線程同步相關概念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ù)通信架構305
12.2.3 圖形用戶界面與事件處理界面的設計308
12.3 網(wǎng)絡通信基礎知識310
12.3.1 網(wǎng)絡通信的層次310
12.3.2 通信端口311
12.3.3 Java網(wǎng)絡編程中主要使用的類和可能產生的異常311
12.3.4 Socket通信模式312
12.3.5 Socket類和ServerSocket類的構造方法及常用方法312
12.3.6 API系統(tǒng)中DataInputStream和DataOutputStream的應用313
12.3.7 多線程處理機制315
習題12316
參考文獻317