關(guān)于我們
書單推薦
新書推薦
|
Java程序設(shè)計與問題求解(原書第8版)
本書不僅介紹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 變量和表達式 33 2.1.1 變量 33 2.1.2 數(shù)據(jù)類型 35 2.1.3 Java標識符 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 縮進 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 布爾表達式 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 編程示例:臭蟲侵擾 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)用程序添加標簽 260 本章小結(jié) 261 練習(xí) 262 實踐程序 264 編程項目 265 自測問題答案 269 第6章 對象和方法進階 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 添加圖標 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 進一步了解數(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 處理鼠標事件 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 為什么用文件來進行輸入/輸出 543 10.1.3 文本文件和二進制文件 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 基本的二進制文件I/O 561 10.4.1 創(chuàng)建二進制文件 561 10.4.2 向二進制文件中寫入基本類型值 563 10.4.3 向二進制文件中寫入字符串 565 10.4.4 有關(guān)writeUTF的一些細節(jié) 566 10.4.5 從二進制文件中讀取內(nèi)容 566 10.4.6 EOFException類 570 10.4.7 編程示例:處理二進制數(shù)據(jù)文件 572 10.5 包含對象和數(shù)組的二進制文件I/O 576 10.5.1 包含類的對象的二進制文件I/O 576 10.5.2 序列化的一些細節(jié) 579 10.5.3 二進制文件中的數(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 鏈式數(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 其他鏈式數(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 索引一
你還可能感興趣
我要評論
|