齣版者的話.
譯者序
前言
第1篇 程序設計基礎
第1章 計算機、程序和Java概述 2
1.1 引言 2
1.2 什麼是計算機 2
1.2.1 中央處理器 3
1.2.2 內存 3
1.2.3 存儲設備 3
1.2.4 輸入輸齣設備 4
1.2.5 通信設備 5
1.3 程序 5
1.4 操作係統 6
1.4.1 控製和監視係統的活動 7
1.4.2 分配係統資源 7
1.4.3 安排操作的順序 7
1.5 數係(可選) 7
1.5.1 二進製數與十進製數的轉換 8
1.5.2 十六進製數與十進製數的轉換 8
1.5.3 二進製數與十六進製數的轉換 9
1.6 Java、萬維網及其他 10
1.7 Java語言規範、API、JDK和IDE 12
1.8 一個簡單的Java程序 12
1.9 創建、編譯和運行Java程序 13
1.10 Java程序剖析 15
1.10.1 注釋 15
1.10.2 保留字 15
1.10.3 修飾符 15
1.10.4 語句 16
1.10.5 塊 16
1.10.6 類 16
1.10.7 方法 16
1.10.8 main方法 16
1.11 用消息對話框顯示文本信息 16
第2章 基本數據類型和基本操作 21
2.1 引言 21
2.2 編寫簡單的程序 21
2.3 標識符 23
2.4 變量 24
2.5 賦值語句和賦值錶達式 24
2.6 常量 25
2.7 數值數據類型及其運算 26
2.7.1 算術運算符 27
2.7.2 數值直接量 28
2.7.3 算術錶達式 29
2.7.4 簡捷賦值運算符 29
2.8 數值類型轉換 31
2.9 字符數據類型及其運算 32
2.9.1 統一碼和ASCⅡ碼 32
2.9.2 特殊字符的轉義序列錶示 33
2.9.3 字符型char數據與數值型數據之間的轉換 33
2.10 字符串類型String 34
2.11 從輸入對話框獲取輸入 35
2.12 實例學習 36
2.12.1 舉例:計算貸款支付額 36
2.12.2 舉例:整錢兌零 38
2.12.3 舉例:顯示當前時間 40
2.13 從控製颱獲取輸入 41
2.14 編程風格和文檔 43
2.14.1 適當的注釋和注釋風格 44
2.14.2 命名習慣 44
2.14.3 適當的縮進和空白 44
2.14.4 塊的對齊方式 44
2.15 編程錯誤 45
2.15.1 語法錯誤 45
2.15.2 運行錯誤 45
2.15.3 邏輯錯誤 46
2.16 調試 46
第3章 條件語句 53
3.1 引言 53
3.2 boolean數據類型及其運算 53
3.2.1 條件和無條件布爾運算符 55
3.2.2 舉例:決定閏年 56
3.2.3 舉例:簡單的算術學習工具 56
3.3 if語句 57
3.3.1 簡單if語句 57
3.3.2 if...else語句 59
3.3.3 if語句的嵌套 60
3.3.4 舉例:稅款計算問題 61
3.3.5 舉例:改進的算術學習工具 63
3.4 switch語句 64
3.5 條件錶達式 66
3.6 格式化控製颱輸齣與字符串 66
3.7 運算符的優先級和結閤方嚮 68
3.8 運算對象的計算順序 69
第4章 循環 75
4.1 引言 75
4.2 while循環 75
4.2.1 舉例:高級算術學習工具 76
4.2.2 使用確認對話框控製循環 77
4.2.3 使用標誌值控製循環 78
4.3 do-while循環 79
4.4 for循環 80
4.5 采用哪種循環 81
4.6 嵌套循環 82
4.7 最小化數值誤差 83
4.8 實例學習 84
4.8.1 舉例:求最大公約數 84
4.8.2 舉例:計算銷售額 86
4.8.3 舉例:顯示數字構成的金字塔 88
4.9 關鍵字break和continue 89
4.9.1 語句標號以及利用標號中止循環(可選) 91
4.9.2 舉例:顯示素數(可選) 91
第5章 方法 101
5.1 引言 101
5.2 創建方法 101
5.3 調用方法 102
5.4 void方法舉例 104
5.5 參數的值傳遞 105
5.6 重載方法 107
5.7 實例學習:使用方法計算稅款 108
5.8 變量的作用域 110
5.9 數學類Math 111
5.9.1 三角函數方法 111
5.9.2 指數函數方法 111
5.9.3 取整方法 112
5.9.4 min、max和abs方法 112
5.9.5 random方法 113
5.10 實例學習:生成隨機字符 113
5.11 方法抽象和逐步求精 115
5.11.1 自頂嚮下的設計 115
5.11.2 自頂嚮下和自底嚮上的實現 117
5.11.3 實現細節 118
5.12 包(可選) 121
5.12.1 包的命名習慣 121
5.12.2 包的目錄 121
5.12.3 在包中添加類 122
5.12.4 使用包中的類 123
第6章 數組 132
6.1 引言 132
6.2 數組基本知識 132
6.2.1 聲明數組變量 132
6.2.2 創建數組 133
6.2.3 數組的大小和默認值 133
6.2.4 數組下標變量 134
6.2.5 數組初始化 134
6.2.6 處理數組 134
6.2.7 foreach循環 135
6.2.8 舉例:測試數組 136
6.2.9 舉例:劃分成績等級 137
6.3 數組的復製 138
6.4 給方法傳遞數組參數 139
6.5 從方法中返迴數組 142
6.6 變長參數列錶(可選) 144
6.7 數組的查找 145
6.7.1 綫性查找法 145
6.7.2 二分查找法 146
6.8 數組的排序 147
6.8.1 選擇排序 147
6.8.2 插入排序(可選) 149
6.9 Arrays類 150
6.10 二維數組 151
6.10.1 聲明二維數組變量和創建二維數組 151
6.10.2 求二維數組的長度 152
6.10.3 鋸齒數組 153
6.10.4 處理二維數組 153
6.10.5 舉例:多選題評分 154
6.10.6 舉例:計算稅款(可選) 156
6.11 多維數組(可選) 157
第2篇 麵嚮對象程序設計
第7章 對象和類 168
7.1 引言 168
7.2 定義對象的類 168
7.3 構造方法 170
7.4 通過引用變量來訪問對象 170
7.4.1 引用變量和引用類型 170
7.4.2 訪問對象的數據和方法 171
7.4.3 舉例:聲明類並創建對象 171
7.4.4 數據域引用和空值null 174
7.4.5 基本數據類型變量和引用類型變量的區彆 ..174
7.5 使用Java類庫中的類 175
7.5.1 Date類 175
7.5.2 Random類 176
7.6 靜態變量、常量和靜態方法 176
7.7 可見性修飾符 180
7.8 數據域封裝 181
7.9 不可變對象和類 183
7.10 給方法傳遞對象參數 184
7.11 變量的作用域 185
7.12 關鍵字this 186
7.13 對象數組 187
7.14 類的抽象和封裝 189
7.15 實例學習:貸款類Loan 189
7.16 實例學習:課程類Course 193
7.17 實例學習:整數棧類StackOfIntegers(可選) 194
7.18 創建窗口(可選 GUI) 196
第8章 字符串和文本I/O 206
8.1 引言 206
8.2 字符串類String 206
8.2.1 構造一個字符串 206
8.2.2 不可變字符串與限定字符串 207
8.2.3 字符串的比較 208
8.2.4 字符串長度以及提取單個字符 209
8.2.5 字符串的連接 210
8.2.6 提取子串 210
8.2.7 字符串的轉換 210
8.2.8 獲取字符串中的一個字符或子串 211
8.2.9 字符串與數組之間的轉換 211
8.2.10 將字符值和數值轉換成字符串 212
8.2.11 舉例:檢測迴文串 212
8.3 字符類Character 213
8.4 StringBuilder/StringBuffer類 215
8.4.1 修改緩衝區中的字符串 216
8.4.2 toString、capacity、length、setLength和charAt方法 217
8.4.3 舉例:忽略既非字母又非數字的字符,判斷迴文串 217
8.5 命令行參數 219
8.5.1 嚮main方法傳遞字符串 219
8.5.2 舉例:處理命令行參數 220
8.6 正則錶達式(可選) 221
8.6.1 字符串匹配 221
8.6.2 正則錶達式語法 221
8.6.3 字符串的替換和分解 223
8.7 文件類File 224
8.8 文本I/O 226
8.8.1 使用PrintWriter寫數據 226
8.8.2 使用Scanner讀數據 227
8.8.3 舉例:替換文本 228
8.9 容器和布局管理器(可選GUI) 229
第9章 繼承和多態 239
9.1 引言 239
9.2 父類和子類 239
9.3 使用關鍵字super 243
9.3.1 調用父類的構造方法 244
9.3.2 構造方法鏈 244
9.3.3 調用父類的方法 245
9.4 方法覆蓋 245
9.5 覆蓋和重載 246
9.6 對象類Object和它的toString()方法 246
9.7 多態性、動態綁定和一般程序設計 247
9.8 對象轉換和instanceof運算符 248
9.9 數組綫性錶ArrayList類 251
9.10 自定義棧類 253
9.11 protected數據和方法 254
9.12 final類、方法和變量 255
9.13 對象類Object中的方法(可選) 256
9.13.1 equals方法 256
9.13.2 hashCode方法 257
9.13.3 finalize方法 257
9.13.4 clone方法 258
9.13.5 getClass方法 258
9.14 數據域和靜態方法的隱藏(可選) 259
9.15 初始化模塊(可選) 260
9.16 GUI組件的繼承(可選 GUI) 262
第10章 抽象類和接口 271
10.1 引言 271
10.2 抽象類 271
10.3 日曆類Calendar和公曆類GregorianCalendar 275
10.4 接口 276
10.4.1 聲明類以實現Comparable接口 277
10.4.2 接口與抽象類 278
10.4.3 創建自定義接口 280
10.4.4 可剋隆接口Cloneable(可選) 281
10.5 將基本數據類型值處理為對象 283
10.5.1 數值包裝類的構造方法 284
10.5.2 數值包裝類的常量 285
10.5.3 轉換方法 285
10.5.4 靜態方法valueOf 285
10.5.5 將字符串轉換為數值的方法 285
10.5.6 BigInteger和BigDecimal類(可選) 286
10.5.7 舉例:對一個對象數組排序 286
10.6 基本類型和包裝類之間的自動轉換 288
10.7 處理GUI事件(可選GUI) 288
第11章 麵嚮對象設計 295
11.1 引言 295
11.2 軟件開發過程 295
11.3 分析類之間的關係 296
11.3.1 關聯 296
11.3.2 聚集和組閤 297
11.3.3 依賴 298
11.3.4 繼承 298
11.4 實例學習:麵嚮對象的設計 299
11.5 實例學習:有理數類Rational 304
11.6 類的設計原則 308
11.6.1 內聚性 308
11.6.2 一緻性 308
11.6.3 封裝性 308
11.6.4 清晰性 308
11.6.5 完整性 309
11.6.6 實例Instance和靜態修飾符Static 309
11.6.7 繼承和聚集 310
11.6.8 接口和抽象類 310
11.7 用順序圖和狀態圖模擬動態行為(可選) 310
11.7.1 順序圖 310
11.7.2 狀態圖 311
11.8 使用Java API在架構基礎上編程 311
第3篇 圖形用戶界麵程序設計
第12章 圖形用戶界麵程序設計入門 316
12.1 引言 316
12.2 GUI組件 316
12.3 Java GUI API 317
12.3.1 Swing GUI組件 318
12.3.2 容器類 319
12.3.3 GUI輔助類 319
12.4 框架 319
12.4.1 創建框架 319
12.4.2 在框架中添加組件 320
12.5 布局管理器 321
12.5.1 FlowLayout 322
12.5.2 GridLayout 323
12.5.3 BorderLayout 325
12.5.4 布局管理器的屬性 326
12.5.5 validate和doLayout方法(可選) 326
12.6 Color類 327
12.7 Font類 327
12.8 使用麵闆作子容器 328
12.9 Swing GUI組件的一般特性 329
12.10 圖像圖標 331
第13章 圖形 338
13.1 引言 338
13.2 圖形坐標係 338
13.3 Graphics類 339
13.4 paintComponent方法 340
13.5 在麵闆上繪圖 342
13.6 繪製字符串、直綫、矩形和橢圓 343
13.7 實例學習:FigurePanel類 344
13.8 繪製弧形 347
13.9 Polygon類以及繪製多邊形和摺綫段 348
13.10 利用FontMetrics類居中顯示 350
13.11 實例學習:MessagePanel類 352
13.12 實例學習:StillClock類(可選) 356
13.13 顯示圖像(可選) 359
13.14 實例學習:ImageViewer類(可選) 361
第14章 事件驅動程序設計 369
14.1 引言 369
14.2 事件和事件源 370
14.3 事件的監聽、注冊和處理 370
14.3.1 內部類監聽器 373
14.3.2 匿名內部類監聽器 375
14.3.3 舉例:處理簡單行為的事件 376
14.3.4 舉例:處理窗口事件 377
14.3.5 監聽器接口適配器 379
14.4 鼠標事件 380
14.5 鍵盤事件 382
14.6 使用Timer類的動畫(可選) 384
第15章 創建圖形用戶界麵 391
15.1 引言 391
15.2 按鈕 391
15.2.1 圖標、按下圖標和翻轉圖標 392
15.2.2 對齊方式 393
15.2.3 文本位置 394
15.2.4 舉例:使用按鈕 394
15.3 復選框 396
15.4 單選按鈕 399
15.5 標簽 401
15.6 文本域 402
15.7 文本區域 404
15.8 組閤框 407
15.9 列錶框 410
15.10 滾動條 413
15.11 滑動塊 415
15.12 創建多個窗口 417
第16章 applet和多媒體 428
16.1 引言 428
16.2 Applet類 428
16.2.1 init方法 429
16.2.2 start方法 430
16.2.3 stop方法 430
16.2.4 destroy方法 430
16.3 JApplet類 430
16.4 HTML文件和applet標記 431
16.4.1 使用applet瀏覽工具瀏覽applet 432
16.4.2 在Web瀏覽器中瀏覽applet 432
16.4.3 舉例:貸款applet 433
16.5 讓applet像應用程序一樣運行 436
16.6 嚮applet傳遞字符串參數 437
16.7 實例學習:三子棋遊戲(可選) 440
16.8 實例學習:跳動的小球(可選) 444
16.9 使用URL類定位資源(可選) 447
16.10 播放音頻(可選) 448
16.11 實例學習:多媒體動畫(可選) 449
16.12 Java工程的打包和發行(可選) 452
16.12.1 清單文件Manifest 452
16.12.2 運行存檔項目 452
第4篇 異常處理、I/O和遞歸
第17章 異常和斷言 462
17.1 引言 462
17.2 異常處理概述 462
17.3 異常和異常類型 464
17.4 理解異常處理 466
17.4.1 聲明異常 466
17.4.2 拋齣異常 466
17.4.3 捕獲異常 467
17.4.4 從異常獲取信息 468
17.4.5 舉例:聲明、拋齣和捕獲異常 470
17.5 finally子句 472
17.6 何時使用異常 473
17.7 重新拋齣異常 473
17.8 鏈式異常(可選) 473
17.9 創建自定義異常類(可選) 474
17.10 斷言(可選) 475
17.10.1 聲明斷言 475
17.10.2 運行帶斷言的程序 476
17.10.3 使用異常處理或斷言 476
第18章 二進製I/O 485
18.1 引言 485
18.2 在Java中如何處理輸入輸齣 485
18.3 文本I/O與二進製I/O 486
18.4 二進製I/O類 487
18.4.1 FileInputStream類和FileOutputStream類 488
18.4.2 FilterInputStream類和FilterOutputStream類 490
18.4.3 DataInputStream類和DataOutputStream類 490
18.4.4 BufferedInputStream類和BufferedOutputStream類 492
18.5 實例學習:文件復製 493
18.6 對象輸入輸齣 495
18.6.1 可序列化接口Serializable 497
18.6.2 序列化數組 497
18.7 隨機讀寫文件(可選) 498
18.8 實例學習:地址簿(可選) 501
第19章 遞歸 511
19.1 引言 511
19.2 舉例:階乘 511
19.3 舉例:斐波那契數 513
19.4 使用遞歸解決問題 515
19.5 遞歸輔助方法 516
19.5.1 選擇排序 516
19.5.2 二分查找 517
19.6 漢諾塔問題 517
19.7 分形 520
19.8 遞歸與迭代 522
附錄A Java關鍵字 528
附錄B ASCII碼字符集 529
附錄C 運算符優先級錶 530
附錄D Java修飾符 531
附錄E 特殊浮點值 532
附錄F 位運算符 533
· · · · · · (
收起)