本書對面向對象的思想和機制進行了準確而透徹的剖析,為讀者深入學習Java語言程序設計提供了全面、詳細的指導。全書覆蓋了面向對象設計的廣泛內容,介紹了Java語言的基本數據類型、流程控制、類和對象等。在深入分析面向對象設計方法的基礎上,介紹了封裝機制、繼承機制和多態(tài)性的實現與應用、異常的捕捉和處理、集合類的定義方法和泛型類的概念。
John Lewis教授是美國知名的編程語言暢銷教材的作者,撰寫了多部有關Java編程導論、Java軟件解決方案、Java數據結構以及計算機應用的相關教材。Lewis教授從美國弗吉尼亞大學獲得了博士學位并一直在該校任教。
張君施,北京工商大學數理系副教授,黨支部書記。研究方向為概率論與數理統計、計算機語言,翻譯過多部經典編程教材。
目 錄
第1章 計算機系統概述 1
1.1 計算機處理過程 1
1.1.1 軟件分類 2
1.1.2 數字計算機 4
1.1.3 二進制數 5
1.2 硬件組件 7
1.2.1 計算機結構 7
1.2.2 輸入/輸出設備 8
1.2.3 主存儲器和輔助存儲器 9
1.2.4 中央處理器 11
1.3 網絡 13
1.3.1 網絡連接 13
1.3.2 局域網和廣域網 14
1.3.3 因特網 15
1.3.4 萬維網 15
1.3.5 統一資源定位器 16
1.4 Java編程語言 17
1.4.1 Java程序 18
1.4.2 注釋 19
1.4.3 標識符和保留字 20
1.4.4 空白符 22
1.5 程序開發(fā) 24
1.5.1 編程語言的級別 24
1.5.2 編輯器、編譯器和解釋器 25
1.5.3 開發(fā)環(huán)境 26
1.5.4 語法和語義 27
1.5.5 錯誤 27
1.6 面向對象編程 28
1.6.1 問題求解 29
1.6.2 面向對象的軟件原理 30
重要概念小結 32
練習題 33
編程項目 34
第2章 數據與表達式 36
2.1 字符串 36
2.1.1 print和println方法 36
2.1.2 字符串的連接 37
2.1.3 轉義序列 39
2.2 變量與賦值 41
2.2.1 變量 41
2.2.2 賦值語句 42
2.2.3 常量 43
2.3 基本數據類型 44
2.3.1 整型與浮點型 44
2.3.2 字符型 46
2.3.3 布爾型 47
2.4 表達式 47
2.4.1 算術運算符 47
2.4.2 運算符優(yōu)先級 48
2.4.3 自增和自減運算符 50
2.4.4 賦值運算符 51
2.5 數據類型轉換 52
2.5.1 數據類型轉換技術 53
2.6 交互式程序 55
2.6.1 Scanner類 55
重要概念小結 58
練習題 58
編程項目 60
第3章 類與對象 62
3.1 創(chuàng)建對象 62
3.1.1 別名 64
3.2 String類 65
3.3 包 67
3.3.1 import聲明 69
3.4 Random類 70
3.5 Math類 72
3.6 格式化輸出 74
3.6.1 NumberFormat類 74
3.6.2 DecimalFormat類 76
3.6.3 printf方法 77
3.7 枚舉類型 78
3.8 包裝器類 80
3.8.1 自動裝箱 81
3.9 JavaFX簡介 81
3.10 基本形狀 84
3.11 顏色呈現 88
重要概念小結 89
練習題 90
編程項目 91
第4章 編寫類 93
4.1 類與對象的核心概念 93
4.2 類的分析 94
4.2.1 實例數據 98
4.2.2 UML類圖 98
4.3 封裝 99
4.3.1 可見性修飾符 100
4.3.2 訪問器和修改器 100
4.4 方法的分析 101
4.4.1 return語句 102
4.4.2 參數 103
4.4.3 局部數據 103
4.4.4 銀行賬戶示例 104
4.5 構造方法回顧 107
4.6 弧 107
4.7 圖形 110
4.7.1 視口 111
4.8 圖形用戶界面 112
4.8.1 指定事件處理器的其他
方法 114
4.9 單行文本框 114
重要概念小結 117
練習題 117
編程項目 118
第5章 條件判斷與循環(huán) 121
5.1 布爾表達式 121
5.1.1 相等性運算符與關系運算符 122
5.1.2 邏輯運算符 122
5.2 if語句 124
5.2.1 if-else語句 126
5.2.2 使用語句塊 129
5.2.3 嵌套if語句 131
5.3 數據比較 133
5.3.1 浮點數比較 133
5.3.2 字符比較 133
5.3.3 比較對象 134
5.4 while語句 135
5.4.1 無限循環(huán) 139
5.4.2 嵌套循環(huán) 139
5.4.3 break語句與continue語句 142
5.5 迭代器 143
5.5.1 讀取文本文件 143
5.6 ArrayList類 145
5.7 確定事件源 148
5.8 管理字體 150
5.9 復選框 151
5.10 單選鈕 154
重要概念小結 157
練習題 157
編程項目 159
第6章 其他條件判斷與循環(huán) 163
6.1 switch語句 163
6.2 條件運算符 166
6.3 do語句 167
6.4 for語句 169
6.4.1 for-each循環(huán) 172
6.4.2 各種循環(huán)的比較 172
6.5 對圖形使用循環(huán)和條件 173
6.6 圖形轉換 176
6.6.1 平移 176
6.6.2 縮放 177
6.6.3 旋轉 177
6.6.4 錯切 178
6.6.5 按組進行轉換 178
重要概念小結 181
練習題 181
編程項目 182
第7章 面向對象設計 185
7.1 軟件開發(fā)活動 185
7.2 明確類和對象 186
7.2.1 類職責的分派 187
7.3 靜態(tài)類成員 188
7.3.1 靜態(tài)變量 188
7.3.2 靜態(tài)方法 188
7.4 類間關系 190
7.4.1 依賴關系 190
7.4.2 同一個類的對象之間的
依賴性 191
7.4.3 聚合 195
7.4.4 this引用 198
7.5 接口 199
7.5.1 Comparable接口 203
7.5.2 Iterator接口 203
7.6 枚舉類型 204
7.7 方法設計 205
7.7.1 方法分解 206
7.7.2 方法參數的傳遞方式 209
7.8 方法重載 213
7.9 測試 214
7.9.1 評審 215
7.9.2 缺陷測試 215
7.10 GUI設計 217
7.11 鼠標事件 217
7.12 按鍵事件 221
重要概念小結 223
練習題 223
編程項目 224
第8章 數組 227
8.1 數組元素 227
8.2 聲明和使用數組 228
8.2.1 邊界檢查 230
8.2.2 數組聲明方式 233
8.2.3 數組初始值表 233
8.2.4 數組作為參數 234
8.3 對象數組 235
8.4 命令行實參 242
8.5 可變長度參數表 243
8.6 二維數組 245
8.6.1 多維數組 248
8.7 多邊形和折線 249
8.8 Color對象數組 250
8.9 選項框 253
重要概念小結 255
練習題 256
編程項目 257
第9章 繼承 260
9.1 創(chuàng)建子類 260
9.1.1 protected修飾符 264
9.1.2 super引用 264
9.1.3 多繼承 267
9.2 重寫方法 267
9.2.1 影子變量 269
9.3 類層次結構 269
9.3.1 Object類 270
9.3.2 抽象類 271
9.3.3 接口層次 272
9.4 可見性 273
9.5 繼承關系的設計 275
9.5.1 繼承的限制 276
9.6 JavaFX中的繼承 276
9.7 顏色和日期選擇器 278
9.8 對話框 280
9.8.1 文件選擇器 282
重要概念小結 284
練習題 285
編程項目 285
第10章 多態(tài)性 288
10.1 后綁定 288
10.2 利用繼承實現多態(tài)性 289
10.3 利用接口實現多態(tài)性 297
10.4 排序 299
10.4.1 選擇法排序 299
10.4.2 插入法排序 303
10.4.3 排序算法的比較 304
10.5 搜索 305
10.5.1 線性搜索 305
10.5.2 二分法搜索 308
10.5.3 搜索算法的比較 309
10.6 多態(tài)性設計 309
10.7 屬性 310
10.7.1 變化監(jiān)聽器 312
10.8 滑動條 314
10.9 微調器 315
重要概念小結 317
練習題 318
編程項目 318
第11章 異常處理 319
11.1 異常 319
11.2 未捕獲的異常 320
11.3 try-catch語句 321
11.3.1 finally子句 323
11.4 異常的傳遞 324
11.5 異常類層次結構 326
11.5.1 檢查型與非檢查型異常 328
11.6 I/O異常 329
11.7 工具提示與禁用控件 332
11.8 滾動面板 334
11.9 分隔面板和列表視圖 336
重要概念小結 339
練習題 339
編程項目 340
第12章 遞歸 341
12.1 遞歸思想 341
12.1.1 無窮遞歸 342
12.1.2 數學中的遞歸運算 342
12.2 遞歸編程 343
12.2.1 遞歸與迭代的比較 344
12.2.2 直接遞歸與間接遞歸 345
12.3 遞歸的應用 346
12.3.1 迷宮旅行 346
12.3.2 漢諾塔 349
12.4 平鋪圖形 353
12.5 分形 355
重要概念小結 360
練習題 360
編程項目 361
第13章 集合 363
13.1 集合與數據結構 363
13.1.1 分離接口與實現 363
13.2 數據結構的動態(tài)表示 364
13.2.1 動態(tài)結構 364
13.2.2 動態(tài)鏈表 365
13.2.3 其他的動態(tài)列表 368
13.3 線性集合 369
13.3.1 隊列 369
13.3.2 棧 370
13.4 非線性數據結構 372
13.4.1 樹 372
13.4.2 圖 373
13.5 Java集合類API 374
13.5.1 泛型 374
重要概念小結 375
練習題 375
編程項目 376
附錄A 術語表 378
附錄B 數制系統 395
附錄C Unicode字符集 399
附錄D Java運算符 401
附錄E Java修飾符 405
附錄F Java編碼指南 407
附錄G JavaFX布局面板 411
附錄H JavaFX Scene Builder 418
附錄I 正則表達式 425
附錄J javadoc文檔生成器 426
附錄K Java語法 429
附錄L 自測題答案 438