Java語言是面向?qū)ο蟮木幊陶Z言,具有跨平臺、安全、穩(wěn)定以及多線程等優(yōu)良特性,在網(wǎng)絡(luò)程序開發(fā)、移動程序開發(fā)方面使用廣泛,是目前最常用的編程語言之一。全書共分為15章,分別介紹了Java的基本數(shù)據(jù)類型結(jié)構(gòu)、語句、類與對象、方法、數(shù)組、類的深入探討、繼承與多態(tài)、接口、異常處理、Java常用類、圖形用戶界面、文件和流、線程等內(nèi)容。本書注重面向?qū)ο蟮木幊虒?shí)踐和問題分析能力的訓(xùn)練,使用大量例題來幫助理解和應(yīng)用知識,并且對Java 8的部分新特性進(jìn)行了介紹。本書通俗易懂,便于自學(xué),每一章都配有應(yīng)用舉例,以幫助讀者理解該章節(jié)的主要內(nèi)容。
姚曉玲,副教授。1997年至今在臨沂大學(xué)信息學(xué)院承擔(dān)計(jì)算機(jī)類課程教學(xué)與研究工作。省精品課程群課程"Java程序設(shè)計(jì)”負(fù)責(zé)人(第2位)、校級雙語課程建設(shè)項(xiàng)目"Java雙語課程建設(shè)”主持人。
第1章 Java概述 1
1.1 JAVA、互聯(lián)網(wǎng)和其他 1
1.1.1 Java平臺簡介 1
1.1.2 萬維網(wǎng)與互聯(lián)網(wǎng) 1
1.1.3 Java發(fā)展歷史 2
1.2 JAVA的特點(diǎn) 3
1.3 第一個(gè)JAVA 程序 3
1.4 編寫、編譯、執(zhí)行JAVA程序 4
1.4.1 Java源程序的創(chuàng)建 4
1.4.2 編譯Java源文件 5
1.4.3 執(zhí)行Java字節(jié)碼文件 5
關(guān)鍵術(shù)語 6
本章小結(jié) 6
復(fù)習(xí)題 7
第2章 程序設(shè)計(jì)基礎(chǔ) 8
2.1 JAVA程序的基本結(jié)構(gòu) 8
2.1.1 算法與程序 8
2.1.2 Java程序基本結(jié)構(gòu) 8
2.2 標(biāo)識符與關(guān)鍵字 9
2.2.1 標(biāo)識符的組成 9
2.2.2 關(guān)鍵字 10
2.3 控制臺輸入輸出 10
2.3.1 控制臺輸出 10
2.3.2 Scanner類的使用 11
2.4 變量 12
2.4.1 變量的聲明 13
2.4.2 變量的使用 13
2.5 常量 13
2.5.1 字面常量 13
2.5.2 有名常量 14
2.6 算術(shù)運(yùn)算和位運(yùn)算 14
2.6.1 算術(shù)運(yùn)算符和算術(shù)表達(dá)式 15
2.6.2 整數(shù)的算術(shù)運(yùn)算 15
2.6.3 浮點(diǎn)數(shù)的算術(shù)運(yùn)算 16
2.6.4 算術(shù)混合運(yùn)算的精度 17
2.6.5 位運(yùn)算 18
2.7 賦值語句和賦值表達(dá)式 19
2.7.1 賦值表達(dá)式 19
2.7.2 賦值語句 20
2.8 數(shù)據(jù)類型轉(zhuǎn)換 20
2.8.1 類型的默認(rèn)轉(zhuǎn)換 20
2.8.2 強(qiáng)制類型轉(zhuǎn)換 20
2.8.3 字符串和基本數(shù)據(jù)類型
數(shù)據(jù)的轉(zhuǎn)換 21
2.9 字符數(shù)據(jù)類型及其運(yùn)算 22
2.10 JAVA程序設(shè)計(jì)風(fēng)格 23
2.10.1 命名規(guī)范 23
2.10.2 Java樣式文件 24
2.10.3 代碼的編寫風(fēng)格 24
關(guān)鍵術(shù)語 25
本章小結(jié) 25
復(fù)習(xí)題 26
第3章 分支結(jié)構(gòu) 29
3.1 BOOLEAN數(shù)據(jù)類型 29
3.2 關(guān)系運(yùn)算符和關(guān)系表達(dá)式 29
3.3 邏輯運(yùn)算符和邏輯表達(dá)式 30
3.3.1 非(!)運(yùn)算 30
3.3.2 與(&&)運(yùn)算 31
3.3.3 或(||)運(yùn)算 31
3.3.4 位運(yùn)算符做邏輯運(yùn)算 32
3.4 IF語句 32
3.4.1 if 語句 33
3.4.2 if-else語句 34
3.4.3 if-else-if語句 35
3.4.4 if-else常見問題 37
3.5 SWITCH語句 37
3.6 條件表達(dá)式 39
3.7 格式化控制臺輸出 40
3.8 應(yīng)用示例 41
關(guān)鍵術(shù)語 43
本章小結(jié) 43
復(fù)習(xí)題 44
第4章 循環(huán)結(jié)構(gòu) 47
4.1 WHILE循環(huán) 47
4.2 DO-WHILE 循環(huán) 48
4.3 FOR 循環(huán) 49
4.4 循環(huán)嵌套和編程方法 50
4.4.1 循環(huán)嵌套 50
4.4.2 編程方法 51
4.5 BREAK和CONTINUE 52
4.5.1 break語句 52
4.5.2 continue語句 53
4.6 循環(huán)示例 54
4.6.1 for循環(huán)實(shí)現(xiàn)實(shí)例 54
4.6.2 while循環(huán)語句實(shí)現(xiàn)實(shí)例 55
關(guān)鍵術(shù)語 55
本章小結(jié) 56
復(fù)習(xí)題 56
第5章 類和對象 60
5.1 類、對象、方法、成員變量 60
5.2 定義類和對象 61
5.2.1 定義類 61
5.2.2 創(chuàng)建對象 61
5.2.3 訪問對象的屬性和方法 62
5.3 方法的基本定義 63
5.3.1 方法定義格式 63
5.3.2 return語句 65
5.3.3 方法調(diào)用 65
5.3.4 方法調(diào)用的一般過程 66
5.3.5 成員方法和成員變量的關(guān)系 67
5.4 SET和GET方法 68
5.4.1 setter方法的一般形式 68
5.4.2 getter方法 70
5.5 構(gòu)造方法 72
5.6 基本數(shù)據(jù)類型和引用類型 74
5.7 JAVA的包裝類 76
5.7.1 int和Integer類之間的轉(zhuǎn)換 77
5.7.2 Integer類的常用方法 77
5.7.3 裝箱和拆箱 78
5.8 INSTANCEOF運(yùn)算符 79
5.9 應(yīng)用示例 79
關(guān)鍵術(shù)語 81
本章小結(jié) 81
復(fù)習(xí)題 82
第6章 方法 84
6.1 方法的定義 84
6.2 方法的調(diào)用 85
6.3 參數(shù)的值傳遞 87
6.4 方法重載 89
6.5 變量的作用域 90
6.6 參數(shù)可變的方法 91
6.7 遞歸 92
6.8 方法示例 93
6.9 MATH數(shù)學(xué)類方法 94
6.9.1 Math類的兩個(gè)字段 94
6.9.2 Math類的部分?jǐn)?shù)學(xué)方法 94
關(guān)鍵術(shù)語 95
本章小結(jié) 96
復(fù)習(xí)題 96
第7章 數(shù)組 99
7.1 數(shù)組 99
7.1.1 什么是數(shù)組 99
7.1.2 聲明數(shù)組 99
7.1.3 數(shù)組的創(chuàng)建 99
7.1.4 聲明、創(chuàng)建數(shù)組并初始化 100
7.1.5 數(shù)組元素的訪問 100
7.1.6 數(shù)組長度屬性length 101
7.2 數(shù)組的基本應(yīng)用 102
7.2.1 數(shù)組排序 102
7.2.2 數(shù)組查找 104
7.3 數(shù)組的進(jìn)一步探討 105
7.3.1 數(shù)組與foreach語句 105
7.3.2 數(shù)組與方法 106
7.3.3 數(shù)組與對象 107
7.4 二維數(shù)組 109
7.4.1 二維數(shù)組的聲明、創(chuàng)建和初始化 109
7.4.2 訪問二維數(shù)組元素 110
7.4.3 二維數(shù)組的length屬性 110
7.4.4 二維數(shù)組的應(yīng)用舉例 111
7.5 ARRAYS類 111
7.6 數(shù)組應(yīng)用示例 113
關(guān)鍵術(shù)語 117
本章小結(jié) 117
復(fù)習(xí)題 118
第8章 類的深入探討 122
8.1 面向?qū)ο缶幊痰娜齻(gè)特征 122
8.2 類的組織形式――包 123
8.2.1 包的聲明 123
8.2.2 導(dǎo)入包的類 124
8.2.3 Java中的常用包 124
8.3 類的其他特性 125
8.3.1 訪問權(quán)限修飾符 125
8.3.2 構(gòu)造方法重載 129
8.3.3 this關(guān)鍵字 131
8.3.4 static關(guān)鍵字 133
8.4 枚舉 137
8.4.1 枚舉的定義 137
8.4.2 枚舉的使用 137
8.5 內(nèi)部類 138
8.5.1 成員內(nèi)部類 138
8.5.2 局部內(nèi)部類 140
8.6 類與類之間的關(guān)系 142
8.6.1 類的UML圖 142
8.6.2 依賴關(guān)系 143
8.6.3 關(guān)聯(lián)關(guān)系 143
8.6.4 聚合關(guān)系 144
8.6.5 組合關(guān)系 146
8.7 類的設(shè)計(jì)原則 146
8.8 注解 147
8.8.1 基本Annotation 148
8.8.2 自定義的注解 149
8.8.3 注解的注解 150
8.9 泛型 151
8.9.1 泛型類的聲明 151
8.9.2 泛型對象的聲明和創(chuàng)建 152
8.10 類的應(yīng)用示例 152
關(guān)鍵術(shù)語 154
本章小結(jié) 154
復(fù)習(xí)題 155
第9章 繼承和多態(tài) 158
9.1 繼承 158
9.1.1 繼承在Java中的實(shí)現(xiàn) 158
9.1.2 方法重寫 159
9.1.3 訪問權(quán)限修飾符protected 160
9.1.4 super關(guān)鍵字 161
9.1.5 繼承下的構(gòu)造方法 162
9.2 OBJECT 類介紹 163
9.3 抽象類和最終類 166
9.3.1 抽象類和抽象方法 166
9.3.2 最終類和最終方法 167
9.4 多態(tài) 168
9.4.1 父類引用指向子類對象 168
9.4.2 多態(tài)的實(shí)現(xiàn) 168
9.5 繼承和多態(tài)示例 169
9.5.1 四則運(yùn)算程序 169
9.5.2 動物喂養(yǎng)案例 173
9.5.3 舒舒租車系統(tǒng) 176
關(guān)鍵術(shù)語 182
本章小結(jié) 182
復(fù)習(xí)題 183
第10章 接口 189
10.1 接口 189
10.1.1 接口的定義 189
10.1.2 接口的實(shí)現(xiàn) 189
10.1.3 接口和抽象類的關(guān)系 190
10.1.4 接口的UML表示 191
10.2 接口與多態(tài) 191
10.2.1 接口實(shí)現(xiàn)多態(tài) 191
10.2.2 面向接口的編程 192
10.3 匿名內(nèi)部類 194
10.4 JAVA常用接口 195
10.5 接口的新特性 197
10.5.1 默認(rèn)方法 197
10.5.2 接口的靜態(tài)方法 198
10.5.3 函數(shù)式接口 199
10.6 LAMBDA表達(dá)式 199
10.6.1 lambda表達(dá)式的語法 200
10.6.2 lambda表達(dá)式與函數(shù)式接口 200
10.7 接口的應(yīng)用示例 201
關(guān)鍵術(shù)語 203
本章小結(jié) 203
復(fù)習(xí)題 203
第11章 異常處理 208
11.1 異常概述 208
11.2 異常類型 209
11.2.1 Error類 210
11.2.2 Exception類 210
11.3 TRY-CATCH-FINALLY語句 211
11.3.1 多catch語句段
的try-catch語句 211
11.3.2 try-catch-finally與return語句 212
11.3.3 try-catch語句的嵌套 214
11.3.4 try語句塊中自動釋放資源 215
11.3.5 一個(gè)catch語句塊捕獲
多種類型異常對象 215
11.4 THROW異常的拋出 216
11.4.1 throw拋出異常 216
11.4.2 throws子句 217
11.4.3 異常拋出和子類 218
11.5 自定義異常 218
11.6 異常應(yīng)用示例 218
關(guān)鍵術(shù)語 220
本章小結(jié) 220
復(fù)習(xí)題 220
第12章 Java常用類 223
12.1 STRING類和STRINGBUFFER類 223
12.1.1 構(gòu)造字符串對象 223
12.1.2 字符串特性 224
12.1.3 字符串對象不可變性 226
12.2 STRINGBUFFER類 227
12.2.1 StringBuffer類創(chuàng)建對象 227
12.2.2 StringBuffer類常用方法 228
12.3 大數(shù)類 229
12.3.1 BigInteger類 229
12.3.2 BigDecimal類 230
12.4 JAVA常用日期處理類 232
12.4.1 Date類 233
12.4.2 Calendar類 234
12.4.3 DateFormat類 236
12.4.4 SimpleDateFormat類 237
12.5 JAVA集合框架 238
12.5.1 List列表接口 239
12.5.2 Set集合接口 240
12.5.3 Map映射接口 241
12.6 COLLECTIONS類 242
12.7 CLASS類 244
12.8 集合應(yīng)用示例 246
關(guān)鍵術(shù)語 247
本章小結(jié) 247
復(fù)習(xí)題 247
第13章 圖形用戶界面 249
13.1 AWT和SWING 249
13.1.1 AWT介紹 249
13.1.2 Swing介紹 250
13.2 窗體 251
13.3 面板 253
13.4 SWING常用組件 254
13.4.1 標(biāo)簽 254
13.4.2 按鈕 254
13.4.3 文本框 255
13.4.4 文本域 256
13.4.5 單選按鈕 257
13.4.6 復(fù)選框 258
13.4.7 菜單條、菜單和菜單項(xiàng) 259
13.5 布局管理 261
13.5.1 流式布局管理器 262
13.5.2 邊界式布局
管理器BorderLayout 262
13.5.3 網(wǎng)格式布局管理器 263
13.6 事件驅(qū)動程序設(shè)計(jì) 264
13.6.1 事件模型 264
13.6.2 Java事件類、監(jiān)聽器
接口和適配器類 265
13.6.3 事件處理實(shí)現(xiàn)方式 268
13.7 常用事件類及事件處理 270
13.7.1 窗口事件及處理 270
13.7.2 動作事件及處理 271
13.7.3 選擇事件及處理 272
13.7.4 鍵盤事件及處理 273
13.8 圖形用戶界面應(yīng)用實(shí)例 274
關(guān)鍵術(shù)語 278
本章小結(jié) 278
復(fù)習(xí)題 278
第14章 文件和流 281
14.1 FILE類 281
14.2 輸入流和輸出流 284
14.3 二進(jìn)制流 284
14.3.1 InputStream類
和OutputStream類 285
14.3.2 FileInputStream類
和FileOutputStream類 287
14.3.3 BufferedInputStream類
和BufferedOutputStream類 291
14.3.4 DataInputStream類
和DataOutputStream類 292
14.4 字符流 293
14.4.1 Reader類和Writer類 293
14.4.2 FileReader類和FileWriter類 296
14.4.3 InputStreamReader類
和OutputStreamWriter類 297
14.4.4 BufferedReader類
和BufferedWriter類 298
14.5 隨機(jī)流 299
14.6 流的應(yīng)用示例 300
關(guān)鍵術(shù)語 301
本章小結(jié) 301
復(fù)習(xí)題 302
第15章 線程 304
15.1 線程的定義 304
15.1.1 進(jìn)程、線程與多線程 304
15.1.2 Java的多線程機(jī)制 304
15.1.3 主線程 305
15.2 線程的創(chuàng)建和運(yùn)行 305
15.2.1 繼承Thread類創(chuàng)建線程 305
15.2.2 實(shí)現(xiàn)Runnable接口創(chuàng)建線程 306
15.2.3 兩種多線程實(shí)現(xiàn)
機(jī)制的比較 307
15.3 線程狀態(tài) 309
15.3.1 線程的狀態(tài) 309
15.3.2 線程的調(diào)度 311
15.3.3 線程操作方法 314
15.4 線程的同步 317
15.4.1 同步代碼塊 317
15.4.2 同步方法 318
關(guān)鍵術(shù)語 319
本章小結(jié) 319
復(fù)習(xí)題 319
附錄A Java的下載、安裝與配置 322
附錄B Eclipse下載與安裝 326
附錄C Java運(yùn)算符的優(yōu)先級和結(jié)合性 335
附錄D Java API使用 336
附錄E JUnit測試工具的使用 339