Java語(yǔ)言是面向?qū)ο蟮木幊陶Z(yǔ)言,具有跨平臺(tái)、安全、穩(wěn)定以及多線(xiàn)程等優(yōu)良特性,在網(wǎng)絡(luò)程序開(kāi)發(fā)、移動(dòng)程序開(kāi)發(fā)方面使用廣泛,是目前最常用的編程語(yǔ)言之一。全書(shū)共分為15章,分別介紹了Java的基本數(shù)據(jù)類(lèi)型結(jié)構(gòu)、語(yǔ)句、類(lèi)與對(duì)象、方法、數(shù)組、類(lèi)的深入探討、繼承與多態(tài)、接口、異常處理、Java常用類(lèi)、圖形用戶(hù)界面、文件和流、線(xiàn)程等內(nèi)容。本書(shū)注重面向?qū)ο蟮木幊虒?shí)踐和問(wèn)題分析能力的訓(xùn)練,使用大量例題來(lái)幫助理解和應(yīng)用知識(shí),并且對(duì)Java 8的部分新特性進(jìn)行了介紹。本書(shū)通俗易懂,便于自學(xué),每一章都配有應(yīng)用舉例,以幫助讀者理解該章節(jié)的主要內(nèi)容。
姚曉玲,副教授。1997年至今在臨沂大學(xué)信息學(xué)院承擔(dān)計(jì)算機(jī)類(lèi)課程教學(xué)與研究工作。省精品課程群課程"Java程序設(shè)計(jì)”負(fù)責(zé)人(第2位)、校級(jí)雙語(yǔ)課程建設(shè)項(xiàng)目"Java雙語(yǔ)課程建設(shè)”主持人。
第1章 Java概述 1
1.1 JAVA、互聯(lián)網(wǎng)和其他 1
1.1.1 Java平臺(tái)簡(jiǎn)介 1
1.1.2 萬(wàn)維網(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 編寫(xiě)、編譯、執(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ù)語(yǔ) 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)識(shí)符與關(guān)鍵字 9
2.2.1 標(biāo)識(shí)符的組成 9
2.2.2 關(guān)鍵字 10
2.3 控制臺(tái)輸入輸出 10
2.3.1 控制臺(tái)輸出 10
2.3.2 Scanner類(lèi)的使用 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 賦值語(yǔ)句和賦值表達(dá)式 19
2.7.1 賦值表達(dá)式 19
2.7.2 賦值語(yǔ)句 20
2.8 數(shù)據(jù)類(lèi)型轉(zhuǎn)換 20
2.8.1 類(lèi)型的默認(rèn)轉(zhuǎn)換 20
2.8.2 強(qiáng)制類(lèi)型轉(zhuǎn)換 20
2.8.3 字符串和基本數(shù)據(jù)類(lèi)型
數(shù)據(jù)的轉(zhuǎn)換 21
2.9 字符數(shù)據(jù)類(lèi)型及其運(yùn)算 22
2.10 JAVA程序設(shè)計(jì)風(fēng)格 23
2.10.1 命名規(guī)范 23
2.10.2 Java樣式文件 24
2.10.3 代碼的編寫(xiě)風(fēng)格 24
關(guān)鍵術(shù)語(yǔ) 25
本章小結(jié) 25
復(fù)習(xí)題 26
第3章 分支結(jié)構(gòu) 29
3.1 BOOLEAN數(shù)據(jù)類(lèi)型 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語(yǔ)句 32
3.4.1 if 語(yǔ)句 33
3.4.2 if-else語(yǔ)句 34
3.4.3 if-else-if語(yǔ)句 35
3.4.4 if-else常見(jiàn)問(wèn)題 37
3.5 SWITCH語(yǔ)句 37
3.6 條件表達(dá)式 39
3.7 格式化控制臺(tái)輸出 40
3.8 應(yīng)用示例 41
關(guān)鍵術(shù)語(yǔ) 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語(yǔ)句 52
4.5.2 continue語(yǔ)句 53
4.6 循環(huán)示例 54
4.6.1 for循環(huán)實(shí)現(xiàn)實(shí)例 54
4.6.2 while循環(huán)語(yǔ)句實(shí)現(xiàn)實(shí)例 55
關(guān)鍵術(shù)語(yǔ) 55
本章小結(jié) 56
復(fù)習(xí)題 56
第5章 類(lèi)和對(duì)象 60
5.1 類(lèi)、對(duì)象、方法、成員變量 60
5.2 定義類(lèi)和對(duì)象 61
5.2.1 定義類(lèi) 61
5.2.2 創(chuàng)建對(duì)象 61
5.2.3 訪(fǎng)問(wèn)對(duì)象的屬性和方法 62
5.3 方法的基本定義 63
5.3.1 方法定義格式 63
5.3.2 return語(yǔ)句 65
5.3.3 方法調(diào)用 65
5.3.4 方法調(diào)用的一般過(guò)程 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ù)類(lèi)型和引用類(lèi)型 74
5.7 JAVA的包裝類(lèi) 76
5.7.1 int和Integer類(lèi)之間的轉(zhuǎn)換 77
5.7.2 Integer類(lèi)的常用方法 77
5.7.3 裝箱和拆箱 78
5.8 INSTANCEOF運(yùn)算符 79
5.9 應(yīng)用示例 79
關(guān)鍵術(shù)語(yǔ) 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é)類(lèi)方法 94
6.9.1 Math類(lèi)的兩個(gè)字段 94
6.9.2 Math類(lèi)的部分?jǐn)?shù)學(xué)方法 94
關(guān)鍵術(shù)語(yǔ) 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ù)組元素的訪(fǎng)問(wèn) 100
7.1.6 數(shù)組長(zhǎng)度屬性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語(yǔ)句 105
7.3.2 數(shù)組與方法 106
7.3.3 數(shù)組與對(duì)象 107
7.4 二維數(shù)組 109
7.4.1 二維數(shù)組的聲明、創(chuàng)建和初始化 109
7.4.2 訪(fǎng)問(wèn)二維數(shù)組元素 110
7.4.3 二維數(shù)組的length屬性 110
7.4.4 二維數(shù)組的應(yīng)用舉例 111
7.5 ARRAYS類(lèi) 111
7.6 數(shù)組應(yīng)用示例 113
關(guān)鍵術(shù)語(yǔ) 117
本章小結(jié) 117
復(fù)習(xí)題 118
第8章 類(lèi)的深入探討 122
8.1 面向?qū)ο缶幊痰娜齻€(gè)特征 122
8.2 類(lèi)的組織形式――包 123
8.2.1 包的聲明 123
8.2.2 導(dǎo)入包的類(lèi) 124
8.2.3 Java中的常用包 124
8.3 類(lèi)的其他特性 125
8.3.1 訪(fǎng)問(wèn)權(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)部類(lèi) 138
8.5.1 成員內(nèi)部類(lèi) 138
8.5.2 局部?jī)?nèi)部類(lèi) 140
8.6 類(lèi)與類(lèi)之間的關(guān)系 142
8.6.1 類(lèi)的UML圖 142
8.6.2 依賴(lài)關(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 類(lèi)的設(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 泛型類(lèi)的聲明 151
8.9.2 泛型對(duì)象的聲明和創(chuàng)建 152
8.10 類(lèi)的應(yīng)用示例 152
關(guān)鍵術(shù)語(yǔ) 154
本章小結(jié) 154
復(fù)習(xí)題 155
第9章 繼承和多態(tài) 158
9.1 繼承 158
9.1.1 繼承在Java中的實(shí)現(xiàn) 158
9.1.2 方法重寫(xiě) 159
9.1.3 訪(fǎng)問(wèn)權(quán)限修飾符protected 160
9.1.4 super關(guān)鍵字 161
9.1.5 繼承下的構(gòu)造方法 162
9.2 OBJECT 類(lèi)介紹 163
9.3 抽象類(lèi)和最終類(lèi) 166
9.3.1 抽象類(lèi)和抽象方法 166
9.3.2 最終類(lèi)和最終方法 167
9.4 多態(tài) 168
9.4.1 父類(lèi)引用指向子類(lèi)對(duì)象 168
9.4.2 多態(tài)的實(shí)現(xiàn) 168
9.5 繼承和多態(tài)示例 169
9.5.1 四則運(yùn)算程序 169
9.5.2 動(dòng)物喂養(yǎng)案例 173
9.5.3 舒舒租車(chē)系統(tǒng) 176
關(guān)鍵術(shù)語(yǔ) 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 接口和抽象類(lèi)的關(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)部類(lè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á)式的語(yǔ)法 200
10.6.2 lambda表達(dá)式與函數(shù)式接口 200
10.7 接口的應(yīng)用示例 201
關(guān)鍵術(shù)語(yǔ) 203
本章小結(jié) 203
復(fù)習(xí)題 203
第11章 異常處理 208
11.1 異常概述 208
11.2 異常類(lèi)型 209
11.2.1 Error類(lèi) 210
11.2.2 Exception類(lèi) 210
11.3 TRY-CATCH-FINALLY語(yǔ)句 211
11.3.1 多catch語(yǔ)句段
的try-catch語(yǔ)句 211
11.3.2 try-catch-finally與return語(yǔ)句 212
11.3.3 try-catch語(yǔ)句的嵌套 214
11.3.4 try語(yǔ)句塊中自動(dòng)釋放資源 215
11.3.5 一個(gè)catch語(yǔ)句塊捕獲
多種類(lèi)型異常對(duì)象 215
11.4 THROW異常的拋出 216
11.4.1 throw拋出異常 216
11.4.2 throws子句 217
11.4.3 異常拋出和子類(lèi) 218
11.5 自定義異常 218
11.6 異常應(yīng)用示例 218
關(guān)鍵術(shù)語(yǔ) 220
本章小結(jié) 220
復(fù)習(xí)題 220
第12章 Java常用類(lèi) 223
12.1 STRING類(lèi)和STRINGBUFFER類(lèi) 223
12.1.1 構(gòu)造字符串對(duì)象 223
12.1.2 字符串特性 224
12.1.3 字符串對(duì)象不可變性 226
12.2 STRINGBUFFER類(lèi) 227
12.2.1 StringBuffer類(lèi)創(chuàng)建對(duì)象 227
12.2.2 StringBuffer類(lèi)常用方法 228
12.3 大數(shù)類(lèi) 229
12.3.1 BigInteger類(lèi) 229
12.3.2 BigDecimal類(lèi) 230
12.4 JAVA常用日期處理類(lèi) 232
12.4.1 Date類(lèi) 233
12.4.2 Calendar類(lèi) 234
12.4.3 DateFormat類(lèi) 236
12.4.4 SimpleDateFormat類(lèi) 237
12.5 JAVA集合框架 238
12.5.1 List列表接口 239
12.5.2 Set集合接口 240
12.5.3 Map映射接口 241
12.6 COLLECTIONS類(lèi) 242
12.7 CLASS類(lèi) 244
12.8 集合應(yīng)用示例 246
關(guān)鍵術(shù)語(yǔ) 247
本章小結(jié) 247
復(fù)習(xí)題 247
第13章 圖形用戶(hù)界面 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ū)動(dòng)程序設(shè)計(jì) 264
13.6.1 事件模型 264
13.6.2 Java事件類(lèi)、監(jiān)聽(tīng)器
接口和適配器類(lèi) 265
13.6.3 事件處理實(shí)現(xiàn)方式 268
13.7 常用事件類(lèi)及事件處理 270
13.7.1 窗口事件及處理 270
13.7.2 動(dòng)作事件及處理 271
13.7.3 選擇事件及處理 272
13.7.4 鍵盤(pán)事件及處理 273
13.8 圖形用戶(hù)界面應(yīng)用實(shí)例 274
關(guān)鍵術(shù)語(yǔ) 278
本章小結(jié) 278
復(fù)習(xí)題 278
第14章 文件和流 281
14.1 FILE類(lèi) 281
14.2 輸入流和輸出流 284
14.3 二進(jìn)制流 284
14.3.1 InputStream類(lèi)
和OutputStream類(lèi) 285
14.3.2 FileInputStream類(lèi)
和FileOutputStream類(lèi) 287
14.3.3 BufferedInputStream類(lèi)
和BufferedOutputStream類(lèi) 291
14.3.4 DataInputStream類(lèi)
和DataOutputStream類(lèi) 292
14.4 字符流 293
14.4.1 Reader類(lèi)和Writer類(lèi) 293
14.4.2 FileReader類(lèi)和FileWriter類(lèi) 296
14.4.3 InputStreamReader類(lèi)
和OutputStreamWriter類(lèi) 297
14.4.4 BufferedReader類(lèi)
和BufferedWriter類(lèi) 298
14.5 隨機(jī)流 299
14.6 流的應(yīng)用示例 300
關(guān)鍵術(shù)語(yǔ) 301
本章小結(jié) 301
復(fù)習(xí)題 302
第15章 線(xiàn)程 304
15.1 線(xiàn)程的定義 304
15.1.1 進(jìn)程、線(xiàn)程與多線(xiàn)程 304
15.1.2 Java的多線(xiàn)程機(jī)制 304
15.1.3 主線(xiàn)程 305
15.2 線(xiàn)程的創(chuàng)建和運(yùn)行 305
15.2.1 繼承Thread類(lèi)創(chuàng)建線(xiàn)程 305
15.2.2 實(shí)現(xiàn)Runnable接口創(chuàng)建線(xiàn)程 306
15.2.3 兩種多線(xiàn)程實(shí)現(xiàn)
機(jī)制的比較 307
15.3 線(xiàn)程狀態(tài) 309
15.3.1 線(xiàn)程的狀態(tài) 309
15.3.2 線(xiàn)程的調(diào)度 311
15.3.3 線(xiàn)程操作方法 314
15.4 線(xiàn)程的同步 317
15.4.1 同步代碼塊 317
15.4.2 同步方法 318
關(guān)鍵術(shù)語(yǔ) 319
本章小結(jié) 319
復(fù)習(xí)題 319
附錄A Java的下載、安裝與配置 322
附錄B Eclipse下載與安裝 326
附錄C Java運(yùn)算符的優(yōu)先級(jí)和結(jié)合性 335
附錄D Java API使用 336
附錄E JUnit測(cè)試工具的使用 339