目 錄
Introduction to Java Programming and Data Structures, Comprehensive Version, Eleventh Edition
出版者的話
中文版序
譯者序
前言
第1章 計算機、程序和Java概述 1
1.1 引言 1
1.2 什么是計算機 2
1.2.1 中央處理器 2
1.2.2 比特和字節(jié) 3
1.2.3 內存 3
1.2.4 存儲設備 4
1.2.5 輸入和輸出設備 4
1.2.6 通信設備 5
1.3 編程語言 6
1.3.1 機器語言 6
1.3.2 匯編語言 6
1.3.3 高級語言 7
1.4 操作系統(tǒng) 8
1.4.1 控制和監(jiān)視系統(tǒng)活動 8
1.4.2 分配和調配系統(tǒng)資源 8
1.4.3 調度操作 8
1.5 Java、萬維網以及其他 9
1.6 Java語言規(guī)范、API、JDK、JRE和IDE 10
1.7 一個簡單的Java程序 11
1.8 創(chuàng)建、編譯和執(zhí)行Java程序 13
1.9 程序設計風格和文檔 16
1.9.1 正確的注釋和注釋風格 16
1.9.2 正確的縮進和空白 16
1.9.3 塊的風格 17
1.10 程序設計錯誤 17
1.10.1 語法錯誤 17
1.10.2 運行時錯誤 18
1.10.3 邏輯錯誤 19
1.10.4 常見錯誤 19
1.11 使用NetBeans開發(fā)Java程序 20
1.11.1 創(chuàng)建Java工程 21
1.11.2 創(chuàng)建Java類 22
1.11.3 編譯和運行類 22
1.12 使用Eclipse開發(fā)Java程序 23
1.12.1 創(chuàng)建Java工程 23
1.12.2 創(chuàng)建Java類 24
1.12.3 編譯和運行類 24
關鍵術語 25
本章小結 26
測試題 27
編程練習題 27
第2章 基本程序設計 29
2.1 引言 29
2.2 編寫簡單的程序 29
2.3 從控制臺讀取輸入 32
2.4 標識符 35
2.5 變量 35
2.6 賦值語句和賦值表達式 37
2.7 命名常量 38
2.8 命名習慣 39
2.9 數(shù)值數(shù)據(jù)類型和操作 39
2.9.1 數(shù)值類型 39
2.9.2 從鍵盤讀取數(shù)值 40
2.9.3 數(shù)值操作符 40
2.9.4 冪運算 42
2.10 數(shù)值型字面值 43
2.10.1 整型字面值 43
2.10.2 浮點型字面值 43
2.10.3 科學記數(shù)法 44
2.11 表達式求值以及操作符優(yōu)先級 44
2.12 示例學習:顯示當前時間 45
2.13 增強賦值操作符 47
2.14 自增和自減操作符 48
2.15 數(shù)值類型轉換 50
2.16 軟件開發(fā)過程 52
2.17 示例學習:整錢兌零 55
2.18 常見錯誤和陷阱 57
關鍵術語 59
本章小結 60
測試題 60
編程練習題 60
第3章 選擇 65
3.1 引言 65
3.2 boolean數(shù)據(jù)類型 65
3.3 if語句 67
3.4 雙分支if-else語句 69
3.5 嵌套的if語句和多分支if-else語句 70
3.6 常見錯誤和陷阱 72
3.7 產生隨機數(shù) 75
3.8 示例學習:計算身體質量指數(shù) 77
3.9 示例學習:計算稅率 78
3.10 邏輯操作符 81
3.11 示例學習:判定閏年 84
3.12 示例學習:彩票 85
3.13 switch語句 87
3.14 條件操作 90
3.15 操作符的優(yōu)先級和結合規(guī)則 91
3.16 調試 92
關鍵術語 93
本章小結 93
測試題 94
編程練習題 94
第4章 數(shù)學函數(shù)、字符和字符串 102
4.1 引言 102
4.2 常用數(shù)學函數(shù) 103
4.2.1 三角函數(shù)方法 103
4.2.2 指數(shù)函數(shù)方法 103
4.2.3 取整方法 104
4.2.4 min、max和abs方法 104
4.2.5 random方法 105
4.2.6 示例學習:計算三角形的角度 105
4.3 字符數(shù)據(jù)類型和操作 107
4.3.1 Unicode和ASCII碼 107
4.3.2 特殊字符的轉義序列 108
4.3.3 字符型數(shù)據(jù)與數(shù)值型數(shù)據(jù)之間的轉換 108
4.3.4 字符的比較和測試 109
4.4 String類型 111
4.4.1 獲取字符串長度 112
4.4.2 從字符串中獲取字符 112
4.4.3 連接字符串 113
4.4.4 字符串的轉換 113
4.4.5 從控制臺讀取字符串 114
4.4.6 從控制臺讀取字符 114
4.4.7 字符串比較 115
4.4.8 獲得子字符串 116
4.4.9 獲取字符串中的字符或者子串 117
4.4.10 字符串和數(shù)字間的轉換 118
4.5 示例學習 120
4.5.1 猜測生日 120
4.5.2 將十六進制數(shù)轉換為十進制數(shù) 123
4.5.3 使用字符串修改彩票程序 124
4.6 格式化控制臺輸出 126
關鍵術語 129
本章小結 129
測試題 130
編程練習題 130
第5章 循環(huán) 136
5.1 引言 136
5.2 while循環(huán) 137
5.3 示例學習:猜數(shù)字 139
5.4 循環(huán)設計策略 142
5.5 使用用戶確認或者標記值控制循環(huán) 144
5.6 do-while循環(huán) 146
5.7 for循環(huán) 148
5.8 采用哪種循環(huán) 151
5.9 嵌套循環(huán) 153
5.10 最小化數(shù)值錯誤 155
5.11 示例學習 156
5.11.1 求最大公約數(shù) 156
5.11.2 預測未來學費 158
5.11.3 將十進制數(shù)轉換為十六進制數(shù) 158
5.12 關鍵字break和continue 160
5.13 示例學習:判斷回文 163
5.14 示例學習:顯示素數(shù) 164
關鍵術語 167
本章小結 167
測試題 167
編程練習題 167
第6章 方法 176
6.1 引言 176
6.2 定義方法 177
6.3 調用方法 178
6.4 void方法與返回值方法 180
6.5 按值傳參 183
6.6 模塊化代碼 186
6.7 示例學習:將十六進制數(shù)轉換為十進制數(shù) 188
6.8 重載方法 190
6.9 變量的作用域 192
6.10 示例學習:生成隨機字符 193
6.11 方法抽象和逐步求精 195
6.11.1 自頂向下的設計 196
6.11.2 自頂向下和自底向上的實現(xiàn) 197
6.11.3 實現(xiàn)細節(jié) 199
6.11.4 逐步求精的優(yōu)勢 201
關鍵術語 202
本章小結 202
測試題 203
編程練習題 203
第7章 一維數(shù)組 212
7.1 引言 212
7.2 數(shù)組的基礎知識 212
7.2.1 聲明數(shù)組變量 213
7.2.2 創(chuàng)建數(shù)組 213
7.2.3 數(shù)組大小和默認值 214
7.2.4 訪問數(shù)組元素 214
7.2.5 數(shù)組初始化簡寫方式 215
7.2.6 處理數(shù)組 215
7.2.7 foreach循環(huán) 217
7.3 示例學習:分析數(shù)字 219
7.4 示例學習:一副牌 220
7.5 復制數(shù)組 222
7.6 將數(shù)組傳遞給方法 223
7.7 方法返回數(shù)組 226
7.8 示例學習:統(tǒng)計每個字母出現(xiàn)的次數(shù) 226
7.9 可變長參數(shù)列表 230
7.10 數(shù)組的查找 230
7.10.1 線性查找法 231
7.10.2 二分查找法 231
7.11 數(shù)組的排序 234
7.12 Arrays類 235
7.13 命令行參數(shù) 237
7.13.1 向main方法傳遞字符串 237
7.13.2 示例學習:計算器 238
關鍵術語 239
本章小結 240
測試題 240
編程練習題 240
第8章 多維數(shù)組 248
8.1 引言 248
8.2 二維數(shù)組基礎 248
8.2.1 聲明二維數(shù)組變量并創(chuàng)建二維數(shù)組 249
8.2.2 獲取二維數(shù)組的長度 250
8.2.3 不規(guī)則數(shù)組 250
8.3 處理二維數(shù)組 251
8.4 將二維數(shù)組傳遞給方法 253
8.5 示例學習:多選題測驗評分 254
8.6 示例學習:找出距離最近的點對 255
8.7 示例學習:數(shù)獨 257
8.8 多維數(shù)組 260
8.8.1 示例學習:每日溫度和濕度 261
8.8.2 示例學習:猜生日 263
本章小結 264
測試題 264
編程練習題 264
第9章 對象和類 276
9.1 引言 276
9.2 為對象定義類 277
9.3 示例:定義類和創(chuàng)建對象 278
9.4 使用構造方法構造對象 283
9.5 通過引用變量訪問對象 284
9.5.1 引用變量和引用類型 284
9.5.2 訪問對象的數(shù)據(jù)和方法 285
9.5.3 引用數(shù)據(jù)域和null值 285
9.5.4 基本類型變量和引用類型變量的區(qū)別 286
9.6 使用Java庫中的類 288
9.6.1 Date類 288
9.6.2 Random類 289
9.6.3 Point2D類 289
9.7 靜態(tài)變量、常量和方法 291
9.8 可見性修飾符 296
9.9 數(shù)據(jù)域封裝 297
9.10 向方法傳遞對象參數(shù) 300
9.11 對象數(shù)組 303
9.12 不可變對象和類 305
9.13 變量的作用域 307
9.14 this引用 308
9.14.1 使用this引用數(shù)據(jù)域 308
9.14.2 使用this調用構造方法 309
關鍵術語 310
本章小結 311
測試題 311
編程練習題 311
第10章 面向對象思考 316
10.1 引言 316
10.2 類的抽象和封裝 316
10.3 面向對象的思想 320
10.4 類的關系 322
10.4.1 關聯(lián) 323
10.4.2 聚集和組合 324
10.5 示例學習:設計Course類 325
10.6 示例學習:設計棧類 327
10.7 將基本數(shù)據(jù)類型值作為對象處理 329
10.8 基本類型和包裝類類型之間的自動轉換 332
10.9 BigInteger和BigDecimal類 333
10.10 String類 334
10.10.1 構造字符串 335
10.10.2 不可變字符串與駐留字符串 335
10.10.3 替換和拆分字符串 336
10.10.4 使用模式匹配、替換和拆分 336
10.10.5 字符串與數(shù)組之間的轉換 337
10.10.6 將字符和數(shù)值轉換成字符串 338
10.10.7 格式化字符串 338
10.11 StringBuilder類和StringBuffer類 340
10.11.1 修改StringBuilder中的字符串 341
10.11.2 toString、capacity、length、setLength和charAt方法 343
10.11.3 示例學習:判斷回文串時忽略既非字母又非數(shù)字的字符 343
關鍵術語 346
本章小結 346
測試題 346
編程練習題 346
第11章 繼承和多態(tài) 354
11.1 引言 354
11.2 父類和子類 354
11.3 使用super關鍵字 360
11.3.1 調用父類的構造方法 360
11.3.2 構造方法鏈 361
11.3.3 調用父類的普通方法 362
11.4 方法重寫 363
11.5 方法重寫與重載 364
11.6 Object類及其toString()方法 366
11.7 多態(tài) 366
11.8 動態(tài)綁定 367
11.9 對象轉換和instanceof操作符 370
11.10 Object類的equals方法 374
11.11 ArrayList類 375
11.12 關于列表的一些有用方法 381
11.13 示例學習:自定義棧類 382
11.14 protected數(shù)據(jù)和方法 383
11.15 防止繼承和