內容簡介
本書採用教程式的組織結構,每一章都建立在前面的基礎之上。本書共分14章(模組),每一章討論一個有關Java的議題。本書的特色就在於它包含了許多便於讀者學習的特色內容。 重要技能 每一章都包括一些重要技能,並且在各章中以節標識。 思考與練習 每一章都有思考與練習,測試讀者學習到的知識。答案在附錄中提供。 學習檢查 每一節後面都有一個“學習檢查”,問題的答案在底注中。 專家問答 每一章中都有一些“專家問答”,以一問一答的形式介紹補充知識和要點。 練習 每一章中都包含1~2個實習項目,幫助讀者將學習的知識套用到實踐中去。
圖書目錄
目錄
第1章Java基礎 1
1.1Java的起源 2
1.1.1Java與C和C++
的關係 3
1.1.2Java與C#的關係 4
1.2Java對Internet的貢獻 4
1.2.1Javaapplets 5
1.2.2安全 5
1.2.3可移植性 5
1.3Java的魔力在於位元組碼 5
1.4Java的關鍵術語 6
1.5面向對象程式設計 7
1.5.1封裝 8
1.5.2多態性 9
1.5.3繼承 9
1.6第一個簡單的程式 11
1.6.1輸入程式 11
1.6.2編譯程式 12
1.6.3逐行分析第一個
程式 12
1.7第二個簡單程式 16
練習1-1將加侖換算為升 20
1.8兩個控制語句 21
1.8.1if語句 21
1.8.2for循環語句 23
1.9創建代碼塊 25
1.10分號和定位 26
練習1-2改進從加侖到升
的轉換程式 27
1.11Java的保留關鍵字 30
1.12Java的標識符 30
1.13思考與練習 31
第2章數據類型與運算符 33
2.1Java的原語類型 34
2.1.1整數類型 34
2.1.2浮點型 36
2.1.3字元型 37
2.1.4boolean類型 38
練習2-1閃電有多遠 39
2.2字面值 40
2.2.1十六進制與八進制
常量 41
2.2.2字元轉義序列 41
2.2.3字元串字面值 42
2.3變數詳解 43
2.3.1初始化變數 43
2.3.2動態初始化 44
2.4作用域和變數的生命期 44
2.5算術運算符 48
2.6關係運算符和邏輯運算符 50
2.7賦值運算符 54
2.8速記賦值 54
2.9賦值中的類型轉換 55
2.10不兼容類型的強制轉換 56
練習2-2顯示邏輯運算符
的真值表 59
2.11表達式 60
2.11.1表達式中的類型
轉換 61
2.11.2間距和圓括弧 63
2.12思考與練習 63
第3章程式控制語句 65
3.1從鍵盤輸入字元 66
3.2if語句 67
3.2.1嵌套if語句 69
3.2.2if-else-if階梯狀結構 70
3.3switch語句 71
練習3-1建立一個Java
幫助系統 76
3.4for循環 79
3.4.1for循環的一些變體 80
3.4.2缺失部分要素的for
循環 81
3.4.3無限循環 83
3.4.4沒有循環體的循環 83
3.4.5在for循環內部聲明循環控制變數 84
3.4.6增強型for循環 85
3.5while循環 85
3.6do-while循環 87
練習3-2改進Java幫助
系統 89
3.7使用break退出循環 92
3.8將break語句作為一種goto
語句使用 94
3.9使用continue 99
練習3-3完成Java幫助
系統 101
3.10嵌套的循環 105
3.11思考與練習 106
第4章類、對象和方法 108
4.1類的基礎知識 109
4.1.1類的基本形式 109
4.1.2定義類 110
4.2如何創建對象 114
4.3引用變數和賦值 114
4.4方法 115
4.5從方法返回值 118
4.6返回值 119
4.7使用參數 121
練習4-1創建Help類 125
4.8構造函式 132
4.9帶參數的構造函式 133
4.10深入介紹new運算符 136
4.11垃圾回收與終止器 136
練習4-2演示垃圾回收 138
4.12this關鍵字 140
4.13思考與練習 142
第5章其他數據類型與運算符 144
5.1數組 145
練習5-1排序數組 149
5.2多維數組 151
5.3不規則數組 152
5.3.1三維或更多維的
數組 154
5.3.2初始化多維數組 154
5.4另一種聲明數組的語法 156
5.5數組引用賦值 156
5.6使用length成員 158
練習5-2Queue類 160
5.7for-each形式的循環 165
5.8字元串 170
5.8.1構造字元串 171
5.8.2操作字元串 172
5.8.3字元串數組 174
5.8.4字元串是不可變的 175
5.9使用命令行變元 176
5.10位運算符 178
5.10.1位運算符的與、
或、異或和非 178
5.10.2位移運算符 183
5.10.3位運算符賦值速
記符 185
練習5-3ShowBits類 186
5.11“?”運算符 189
5.12思考與練習 191
第6章方法和類剖析 193
6.1控制對類成員的訪問 194
6.2Java的訪問指示符 194
練習6-1改進Queue類 199
6.3向方法傳遞對象 201
6.4返回對象 205
6.5方法重載 207
6.6重載構造函式 213
練習6-2重載Queue構
造函式 216
6.7遞歸 219
6.8理解static關鍵字 222
練習6-3快速排序 226
6.9嵌套類和內部類 229
6.10可變長度變元(varargs) 233
6.10.1varargs基礎 234
6.10.2重載varargs方法 237
6.10.3varargs和歧義 239
6.11思考與練習 240
第7章繼承 242
7.1繼承的基礎知識 243
7.2構造函式和繼承 249
7.3使用super調用超類構造
函式 251
7.4使用super訪問超類成員 256
練習7-1擴展Vehicle類 257
7.5創建多級層次結構 261
7.6何時調用構造函式 264
7.7超類引用和子類對象 266
7.8方法重寫 271
7.9重寫的方法支持多態性 274
7.9.1為何使用重寫的
方法 276
7.9.2在TwoDShape中應
用方法重寫 276
7.10使用抽象類 281
7.11使用final 286
7.11.1使用final防止
重寫 286
7.11.2使用final防止
繼承 287
7.11.3對數據成員使用
final 287
7.12Object類 289
7.13思考與練習 290
第8章包和接口 291
8.1包 292
8.1.1定義包 292
8.1.2尋找包和
CLASSPATH 293
8.1.3一個簡短的包的
示例 294
8.2包和成員訪問 295
8.3理解被保護的成員 298
8.4導入包 301
8.5Java的類庫位於包中 302
8.6接口 303
8.7實現接口 304
8.8使用接口引用 308
練習8-1創建佇列接口 311
8.9接口中的變數 317
8.10接口能夠擴展 318
8.11思考與練習 320
第9章異常處理 321
9.1異常的層次結構 322
9.2異常處理基礎 322
9.2.1使用try和catch 323
9.2.2一個簡單的異常
示例 324
9.3未捕獲異常的結果 326
9.4使用多個catch語句 329
9.5捕獲子類異常 330
9.6嵌套try代碼塊 332
9.7拋出異常 333
9.8Throwable詳解 336
9.9使用finally 338
9.10使用throws 340
9.11Java的內置異常 342
9.12創建異常子類 344
練習9-1向排序類添加
異常 346
9.13思考與練習 350
第10章使用I/O 352
10.1Java的I/O基於流 353
10.2位元組流和字元流 353
10.3位元組流類 354
10.4字元流類 354
10.5預定義流 355
10.6使用位元組流 356
10.6.1讀取控制台輸入 357
10.6.2寫入控制台輸出 358
10.7使用位元組流讀寫檔案 359
10.7.1從檔案輸入 359
10.7.2寫入檔案 361
10.8讀寫二進制數據 363
練習10-1檔案比較
程式 367
10.9隨機訪問檔案 369
10.10使用Java字元流 372
10.10.1基於字元流的控
制台輸入 373
10.10.2使用字元流的控
制台輸出 376
10.11使用字元流的檔案
I/O(OK) 377
10.11.1使用FileWriter 377
10.11.2使用FileReader 379
10.12使用Java類型包裝器
轉換數值字元串 380
練習10-2創建一個基於
的幫助系統 383
10.13思考與練習 390
第11章多執行緒程式設計 391
11.1多執行緒基本原理 392
11.2Thread類和Runnable
接口 392
11.3創建一個執行緒 393
練習11-1擴展Thread 399
11.4創建多重執行緒 402
11.5確定執行緒何時結束 405
11.6執行緒的優先權 409
11.7同步化 412
11.8使用同步化方法 412
11.9同步化語句 416
11.10使用notify()、wait()和
notifyAll()的執行緒通信 418
11.11執行緒的掛起、繼續執行
和停止 424
練習11-2使用主執行緒 428
11.12思考與練習 430
第12章枚舉、自動封包和
靜態導入 432
12.1枚舉 433
12.2Java的枚舉是類類型 436
12.3values()和valueOf()
方法 436
12.4構造函式、方法、實
例變數和枚舉 438
12.5枚舉繼承Enum 440
練習12-1計算機控制的
交通指示燈 442
12.6類型包裝器 448
12.7自動封包基礎 450
12.8自動封包和方法 451
12.9發生在表達式中的自動
封包/自動解包 452
12.10靜態導入 454
12.11元數據 457
12.12思考與練習 460
第13章泛化 461
13.1泛化基礎 462
13.2一個簡單的泛化示例 463
13.3約束類型 469
13.4使用通配符變元 473
13.5約束通配符 476
13.6泛化方法 480
13.7泛化構造函式 482
13.8泛化接口 483
練習13.1創建一個泛化
佇列 486
13.9原類型和遺留代碼 490
13.10Erasure 493
13.11歧義錯誤 495
13.12一些泛化限制 496
13.13思考與練習 498
第14章applet、事件和其他議題 500
14.1applet基礎 501
14.2applet層次結構 504
14.3一個完整的applet框架 505
14.4applet初始化與終止 506
14.5請求重繪 507
練習14-1一個簡單的廣
告條applet 509
14.6使用狀態視窗 513
14.7向applet傳遞參數 514
14.8Applet類 516
14.9委派事件模型 517
14.9.1事件 518
14.9.2事件源 518
14.9.3事件偵聽者 518
14.9.4事件類
(EventClass) 519
14.9.5事件偵聽者接口 519
14.10使用委派事件模型 520
14.10.1處理滑鼠事件 520
14.10.2一個簡單的滑鼠
事件applet 521
14.11其他Java關鍵字 524
14.11.1transient和volatile
修飾符 525
14.11.2instanceof 525
14.11.3strictfp 525
14.11.4assert 526
14.11.5native方法 526
14.12思考與練習 527
附錄思考與練習答案 529