Java程序設(shè)計與問題求解(原書第8版)
定 價:139 元
叢書名:計算機科學(xué)叢書
- 作者:
- 出版時間:2019/3/1
- ISBN:9787111620976
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP312.8
- 頁碼:0
- 紙張:
- 版次:
- 開本:16開
本書不僅介紹Java語言的基礎(chǔ)語法知識,還通過大量案例研究、編程示例,著重講授問題求解和編程技術(shù),如程序控制流(分支和循環(huán))、定義類與方法、異常處理等。
出版者的話
譯者序
前言
致謝
依賴關(guān)系圖
第1章 計算機與Java引論 1
1.1 計算機基礎(chǔ) 1
1.1.1 硬件與內(nèi)存 2
1.1.2 程序 3
1.1.3 編程語言、編譯器和解釋器 4
1.1.4 Java字節(jié)碼 5
1.1.5 類加載器 7
1.2 淺嘗Java 8
1.2.1 Java語言的歷史 8
1.2.2 應(yīng)用程序與小應(yīng)用程序 9
1.2.3 第一個Java應(yīng)用程序 9
1.2.4 編寫、編譯和運行Java程序 13
1.3 編程基礎(chǔ) 14
1.3.1 面向?qū)ο缶幊? 14
1.3.2 算法 17
1.3.3 測試與調(diào)試 18
1.3.4 軟件復(fù)用 19
1.4 圖形化編程補充讀物 20
1.4.1 一個JavaFX應(yīng)用程序樣例 21
1.4.2 圖形的尺寸和位置 23
1.4.3 繪制橢圓和圓 24
1.4.4 繪制弧 25
本章小結(jié) 27
練習(xí) 28
實踐程序 29
編程項目 29
自測問題答案 30
第2章 基本的計算 33
2.1 變量和表達(dá)式 33
2.1.1 變量 33
2.1.2 數(shù)據(jù)類型 35
2.1.3 Java標(biāo)識符 37
2.1.4 賦值語句 38
2.1.5 簡單輸入 40
2.1.6 簡單屏幕輸出 41
2.1.7 常量 42
2.1.8 具名常量 43
2.1.9 賦值兼容性 44
2.1.10 類型強制轉(zhuǎn)換 45
2.1.11 算術(shù)運算 48
2.1.12 括號和優(yōu)先級規(guī)則 50
2.1.13 特殊賦值操作符 51
2.1.14 案例研究:售貨機找零 52
2.1.15 遞增和遞減操作符 56
2.1.16 更多有關(guān)遞增和遞減操作符的討論 57
2.2 String類 57
2.2.1 字符串常量和變量 58
2.2.2 字符串連接 58
2.2.3 字符串方法 59
2.2.4 字符串處理 62
2.2.5 轉(zhuǎn)義字符 63
2.2.6 Unicode字符集 64
2.3 鍵盤和屏幕I/O 65
2.3.1 屏幕輸出 65
2.3.2 鍵盤輸入 67
2.3.3 其他輸入界定符(選修) 72
2.3.4 使用printf的格式化輸出(選修) 73
2.4 文檔和樣式 75
2.4.1 有意義的變量名 75
2.4.2 注釋 75
2.4.3 縮進(jìn) 77
2.4.4 使用具名常量 78
2.5 圖形化編程補充讀物 80
2.5.1 將樣式規(guī)則應(yīng)用于JavaFX應(yīng)用程序 80
2.5.2 介紹JOptionPane類 81
2.5.3 將輸入作為其他數(shù)字類型讀取 87
2.5.4 編程示例:具有窗口化I/O的找零程序 88
本章小結(jié) 90
練習(xí) 90
實踐程序 92
編程項目 93
自測問題答案 94
第3章 流控制—分支 98
3.1 if-else語句 98
3.1.1 基本的if-else語句 98
3.1.2 布爾表達(dá)式 104
3.1.3 比較字符串 107
3.1.4 嵌套的if-else語句 111
3.1.5 多重分支的if-else語句 112
3.1.6 編程示例:給出字母等第 114
3.1.7 案例研究:體重指數(shù) 116
3.1.8 條件操作符(選修) 118
3.1.9 exit方法 119
3.2 boolean類型 120
3.2.1 布爾變量 120
3.2.2 優(yōu)先級規(guī)則 121
3.2.3 布爾值的輸入和輸出 123
3.3 switch語句 124
3.4 圖形化編程補充讀物 130
3.4.1 指定繪圖顏色 131
3.4.2 Yes或No問題的對話框 134
本章小結(jié) 135
練習(xí) 136
實踐程序 137
編程項目 138
自測問題答案 140
第4章 流控制—循環(huán) 142
4.1 Java循環(huán)語句 142
4.1.1 while語句 143
4.1.2 do-while語句 146
4.1.3 編程示例:臭蟲侵?jǐn)_ 149
4.1.4 編程示例:嵌套循環(huán) 154
4.1.5 for語句 155
4.1.6 在for語句中聲明變量 160
4.1.7 在for語句中使用逗號(選修) 160
4.1.8 for-each語句 162
4.2 用循環(huán)編程 162
4.2.1 循環(huán)體 162
4.2.2 初始化語句 163
4.2.3 控制循環(huán)迭代次數(shù) 164
4.2.4 案例研究:使用布爾變量來終止循環(huán) 166
4.2.5 編程示例:消費熱潮 168
4.2.6 循環(huán)中的break語句和continue語句(選修) 170
4.2.7 循環(huán)缺陷 172
4.2.8 跟蹤變量 174
4.2.9 斷言檢查 175
4.3 圖形化編程補充讀物 177
4.3.1 編程示例:一個包含多張臉的JavaFX應(yīng)用程序 177
4.3.2 繪制文本 181
本章小結(jié) 182
練習(xí) 182
實踐程序 184
編程項目 185
自測問題答案 188
第5章 定義類和方法 193
5.1 類和方法定義 193
5.1.1 類文件和單獨編譯 195
5.1.2 編程示例:實現(xiàn)Dog類 195
5.1.3 實例變量 196
5.1.4 方法 198
5.1.5 定義void方法 200
5.1.6 定義有返回值的方法 201
5.1.7 編程示例:實現(xiàn)Species類的第一次嘗試 205
5.1.8 關(guān)鍵詞this 208
5.1.9 局部變量 209
5.1.10 塊 211
5.1.11 基本類型參數(shù) 212
5.2 信息隱藏和封裝 216
5.2.1 信息隱藏 217
5.2.2 前置條件和后置條件注釋 217
5.2.3 public和private修飾符 218
5.2.4 編程示例:為什么實例變量應(yīng)該是私有的 220
5.2.5 編程示例:矩形類的另一種實現(xiàn) 221
5.2.6 訪問器方法和修改器方法 223
5.2.7 編程示例:Purchase類 225
5.2.8 調(diào)用方法的方法 228
5.2.9 封裝 233
5.2.10 使用javadoc自動歸檔 235
5.2.11 UML類圖 235
5.3 對象和引用 236
5.3.1 類類型變量 237
5.3.2 定義類的equals方法 242
5.3.3 編程示例:Species類 244
5.3.4 布爾值方法 246
5.3.5 案例研究:單元測試 247
5.3.6 類類型參數(shù) 249
5.3.7 編程示例:類類型參數(shù)與基本類型參數(shù) 252
5.4 圖形化編程補充讀物 255
5.4.1 GraphicsContext類 255
5.4.2 編程示例:用輔助方法繪制多張臉 257
5.4.3 向JavaFX應(yīng)用程序添加標(biāo)簽 260
本章小結(jié) 261
練習(xí) 262
實踐程序 264
編程項目 265
自測問題答案 269
第6章 對象和方法進(jìn)階 274
6.1 構(gòu)造器 275
6.1.1 定義構(gòu)造器 275
6.1.2 在構(gòu)造器中調(diào)用方法 281
6.1.3 在構(gòu)造器中調(diào)用其他構(gòu)造器(選修) 284
6.2 靜態(tài)變量和靜態(tài)方法 285
6.2.1 靜態(tài)變量 285
6.2.2 靜態(tài)方法 286
6.2.3 將main方法中的任務(wù)劃分為子任務(wù) 291
6.2.4 在類中添加main方法 293
6.2.5 Math類 294
6.2.6 包裝器類 296
6.3 編寫方法 300
6.3.1 案例研究:格式化輸出 300
6.3.2 分解 305
6.3.3 解決編譯器問題 305
6.3.4 測試方法 307
6.4 重載 309
6.4.1 重載基礎(chǔ)知識 309
6.4.2 重載和自動類型轉(zhuǎn)換 311
6.4.3 重載和返回類型 313
6.4.4 編程示例:Money類 315
6.5 再探信息隱藏 320
6.6 作為類的枚舉 323
6.7 包 325
6.7.1 包和導(dǎo)入機制 325
6.7.2 包名和目錄 326
6.7.3 名字沖突 328
6.8 圖形化編程補充讀物 329
6.8.1 添加按鈕 329
6.8.2 添加圖標(biāo) 330
本章小結(jié) 332
練習(xí) 332
實踐程序 334
編程項目 335
自測問題答案 338
第7章 數(shù)組 343
7.1 數(shù)組基礎(chǔ) 344
7.1.1 創(chuàng)建和訪問數(shù)組 344
7.1.2 數(shù)組詳情 346
7.1.3 實例變量length 349
7.1.4 進(jìn)一步了解數(shù)組索引 351
7.1.5 初始化數(shù)組 354
7.2 類和方法中的數(shù)組 355
7.2.1 案例研究:銷售報表 355
7.2.2 索引變量作為方法引元 362
7.2.3 整個數(shù)組作為方法引元 363
7.2.4 main方法的引元 365
7.2.5 數(shù)組賦值和判等 365
7.2.6 返回數(shù)組的方法 368
7.3 用數(shù)組和類編程 371
7.3.1 編程示例:專用列表類 371
7.3.2 部分填充的數(shù)組 377
7.4 數(shù)組排序和搜索 378
7.4.1 選擇排序 378
7.4.2 其他排序算法 382
7.4.3 在數(shù)組中搜索 383
7.5 多維數(shù)組 383
7.5.1 多維數(shù)組基礎(chǔ)知識 384
7.5.2 多維數(shù)組作為參數(shù)和返回值 386
7.5.3 多維數(shù)組的Java表示形式 388
7.5.4 參差數(shù)組(選修) 389
7.5.5 編程示例:工時記錄 390
7.6 圖形化編程補充讀物 395
7.6.1 布局面板 395
7.6.2 文本域、文本框和組合布局 401
7.6.3 繪制多邊形 404
本章小結(jié) 407
練習(xí) 407
實踐程序 411
編程項目 412
自測問題答案 416
第8章 繼承、多態(tài)和接口 422
8.1 繼承基礎(chǔ) 422
8.1.1 派生類 423
8.1.2 覆蓋方法定義 426
8.1.3 覆蓋與重載 427
8.1.4 final修飾符 427
8.1.5 基類的私有實例變量與私有方法 428
8.1.6 UML繼承圖 429
8.2 運用繼承編程 431
8.2.1 派生類中的構(gòu)造器 431
8.2.2 再論this方法 432
8.2.3 調(diào)用被覆蓋的方法 433
8.2.4 編程示例:派生類的派生類 434
8.2.5 在Undergraduate中定義equals方法的另一種方式 437
8.2.6 類型兼容性 437
8.2.7 Object類 441
8.2.8 更好的equals方法 442
8.3 多態(tài) 444
8.3.1 動態(tài)綁定和繼承 444
8.3.2 動態(tài)綁定toString 447
8.4 接口與抽象類 448
8.4.1 類接口 448
8.4.2 Java接口 449
8.4.3 實現(xiàn)接口 450
8.4.4 作為類型的接口 452
8.4.5 擴展接口 454
8.4.6 案例研究:字符圖形 455
8.4.7 案例研究:Comparable接口 464
8.4.8 抽象類 468
8.5 圖形化編程補充讀物 469
8.5.1 事件驅(qū)動編程 470
8.5.2 在單獨的類中處理事件 471
8.5.3 在主GUI應(yīng)用類中處理事件 473
8.5.4 在匿名內(nèi)部類中處理事件 475
8.5.5 編程示例:添加數(shù)字 477
本章小結(jié) 479
練習(xí) 479
實踐程序 480
編程項目 481
自測問題答案 483
第9章 異常處理 486
9.1 基本的異常處理 486
9.1.1 Java中的異常 487
9.1.2 預(yù)定義的異常類 495
9.2 定義自己的異常類 496
9.3 更多有關(guān)異常類的知識 503
9.3.1 聲明異常(傳遞責(zé)任) 504
9.3.2 異常的種類 506
9.3.3 錯誤 507
9.3.4 多個拋出和捕獲 508
9.3.5 finally塊 513
9.3.6 重新拋出異常(選修) 513
9.3.7 案例研究:面向命令行的計算器 514
9.4 圖形化編程補充讀物 523
9.4.1 更多的用戶界面控件和形狀 523
9.4.2 圖像和形狀 526
9.4.3 處理鼠標(biāo)事件 527
9.4.4 Timeline類 530
本章小結(jié) 532
練習(xí) 533
實踐程序 534
編程項目 536
自測問題答案 538
第10章 流、文件I/O和網(wǎng)絡(luò) 542
10.1 流和文件I/O概覽 542
10.1.1 流的概念 543
10.1.2 為什么用文件來進(jìn)行輸入/輸出 543
10.1.3 文本文件和二進(jìn)制文件 543
10.2 文本文件I/O 545
10.2.1 創(chuàng)建文本文件 545
10.2.2 在文本文件中追加內(nèi)容 550
10.2.3 從文本文件中讀取內(nèi)容 551
10.3 適用于所有文件的技術(shù) 553
10.3.1 File類 553
10.3.2 編程示例:從鍵盤讀取文件名 554
10.3.3 使用路徑名 555
10.3.4 File類的方法 556
10.3.5 定義方法來打開流 558
10.3.6 案例研究:處理由逗號分隔的數(shù)值文件 559
10.4 基本的二進(jìn)制文件I/O 561
10.4.1 創(chuàng)建二進(jìn)制文件 561
10.4.2 向二進(jìn)制文件中寫入基本類型值 563
10.4.3 向二進(jìn)制文件中寫入字符串 565
10.4.4 有關(guān)writeUTF的一些細(xì)節(jié) 566
10.4.5 從二進(jìn)制文件中讀取內(nèi)容 566
10.4.6 EOFException類 570
10.4.7 編程示例:處理二進(jìn)制數(shù)據(jù)文件 572
10.5 包含對象和數(shù)組的二進(jìn)制文件I/O 576
10.5.1 包含類的對象的二進(jìn)制文件I/O 576
10.5.2 序列化的一些細(xì)節(jié) 579
10.5.3 二進(jìn)制文件中的數(shù)組對象 580
10.6 使用流的網(wǎng)絡(luò)通信 582
10.7 圖形化編程補充讀物 586
本章小結(jié) 591
練習(xí) 591
實踐程序 593
編程項目 594
自測問題答案 597
第11章 遞歸 601
11.1 遞歸基礎(chǔ) 601
11.1.1 案例研究:數(shù)字位顯示成單詞 603
11.1.2 遞歸如何工作 607
11.1.3 無限遞歸 610
11.1.4 遞歸方法與迭代方法 612
11.1.5 有返回值的遞歸方法 614
11.2 運用遞歸編程 617
11.2.1 編程示例:要求用戶輸入必須正確 617
11.2.2 案例研究:二分搜索 618
11.2.3 編程示例:歸并排序—一種遞歸排序方法 624
11.3 圖形化編程補充讀物 627
本章小結(jié) 630
練習(xí) 630
實踐程序 632
編程項目 632
自測問題答案 636
第12章 動態(tài)數(shù)據(jù)結(jié)構(gòu)和泛型 639
12.1 基于數(shù)組的數(shù)據(jù)結(jié)構(gòu) 640
12.1.1 ArrayList類 640
12.1.2 創(chuàng)建ArrayList的實例 641
12.1.3 使用ArrayList的方法 642
12.1.4 編程示例:待辦事項列表 645
12.1.5 參數(shù)化類和泛化數(shù)據(jù)類型 647
12.2 Java集合框架 648
12.2.1 Collection接口 648
12.2.2 HashSet類 649
12.2.3 Map接口 650
12.2.4 HashMap類 650
12.3 鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu) 653
12.3.1 LinkedList類 653
12.3.2 鏈表 653
12.3.3 實現(xiàn)鏈表的操作 655
12.3.4 隱私泄露 660
12.3.5 內(nèi)部類 661
12.3.6 節(jié)點內(nèi)部類 662
12.3.7 迭代器 662
12.3.8 Java的Iterator接口 670
12.3.9 鏈表的異常處理 671
12.3.10 鏈表的變體 673
12.3.11 其他鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu) 675
12.4 泛型 675
12.4.1 基礎(chǔ)知識 675
12.4.2 編程示例:一個泛化的鏈表 678
12.5 圖形化編程補充讀物 682
12.5.1 用場景構(gòu)建器構(gòu)建JavaFX應(yīng)用程序 682
12.5.2 何去何從 686
本章小結(jié) 686
練習(xí) 687
實踐程序 689
編程項目 690
自測問題答案 693
附錄A 獲取Java 696
附錄B 運行Applet 697
附錄C protected和包修飾符 698
附錄D DecimalFormat類 699
附錄E javadoc 702
附錄F C++和Java之間的區(qū)別 704
附錄G Unicode字符編碼 707
附錄H Java 8函數(shù)式編程簡介 708
附錄I ??Iterator接口 712
附錄J 克隆 713
附錄K Java保留關(guān)鍵詞 716
索引一