Java程式設計與問題求解(第7版)

Java程式設計與問題求解(第7版)

《Java程式設計與問題求解(第7版)》是2015年出版的圖書,作者是Walter Savitch。

基本介紹

  • 書名:Java程式設計與問題求解
  • 作者:Walter Savitch
  • ISBN:9787302389354
  • 出版社:清華大學出版社
  • 出版時間:2015-04-01
圖書信息,內容簡介,前言,目錄,

圖書信息

Java程式設計與問題求解(第7版)
金名 等譯
ISBN:9787302389354
定價:99元
印次:1-1
裝幀:平裝

內容簡介

本書用於程式設計與計算機科學專業的第一門課程。本書不僅介紹Java語法知識,而且通過大量案例研究、編程示例,著重講授問題求解和編程技術,如循環設計技術、調試技巧、風格技術、抽象數據類型以及面向對象編程技術,包括UML、事件驅動編程以及使用類型參數的泛型編程等。本書不僅在每章中間安排了大量自測題,而且在每章末尾還給出了練習題、編程實踐和編程項目,幫助讀者掌握和加深所學知識,是高等學校計算機及相關專業以Java為語言講授計算機科學課程的理想教材。
本書共分15章,前12章採用紙質印刷方式,也就是讀者現在看到的內容,後3章放在本書的配套網站上,有多餘精力的讀者可以直接到該網站閱讀和學習這些內容。

前言

本書是由美國加州大學聖地亞哥分校計算機科學系名譽教授、多部C++、Java教材暢銷書作者Walter Savitch編寫。除本書外,Walter Savitch還著有一系列程式語言教材,都廣受歡迎,暢銷不衰,被譽為讀者最多的計算機程式語言圖書作者。
本書第7版與第6版之間主要有如下一些差別
* 每章末尾的編程題分成了編程實踐和編程項目。編程實踐通常可以直接使用本章介紹的編程思想,用一個比較簡短的程式解決。編程實踐適合作為實驗練習。編程項目需要更強的問題求解能力,解決方法也比編程實踐更複雜。編程項目適合作為課後作業。
* 增加了安全編程(如溢出、數組越界)、Java 2D API概述、網路編程、URL類等 內容。
* 新增21個新編程實踐和13個新編程項目。
* 新增10個教學視頻,使本書的總教學視頻達到72個。這些教學視頻可以向學生講解問題求解與編碼的過程,幫助學生鞏固關鍵編程概念。
本書由金名主譯,陳宗斌、陳河南、賀軍、傅強、陳紅霞、張景友、易小麗、陳婷、管學崗、王新彥、金惠敏、張海峰、徐曄、戴鋒、張德福、張士華、張鎖玲、杜明宗、高玉琢、王濤、申川、孫玲、李振國、高德傑、宮飛、侯經國、劉淑妮、張春林、李大成、程明、張路紅、張淑芝、孫先國、劉冀得、梁永翔、張廣東、郁琪琳、邵長凱、蒲書箴、潘曙光、劉瑞東、李軍、蔡建章、李勻、張建安、鄧鐵洪、徐君、李強、蔣恩俊、楊文保、李強、蘇辛、周成興、魏敬安、朱建波、徐志平、趙傑輝、傅褘、郭碧蓮、郭洵、洪曉煜、黃宣達、江松波、柯渝、賴曲芳、廖陽、劉文紅、李偉、郭濤、高磊、王振營、馮哲、韓毅、馬以輝、李騰、鄧衛、鄧凡平、周雲、董武、鄭曉蕊、陳占軍、倪泳智、黃虹、呂巧珍、裘蕾、金穎、王嘉佳、吳建偉、宋雁等人也參與了本書的翻譯工作,在此一併表示 感謝!
由於水平有限,如有不妥之處,懇請讀者指正。

目錄

第1章 計算機與Java語言概述 1
1.1 計算機基礎 1
1.1.1 硬體和記憶體 1
1.1.2 程式 3
1.1.3 程式語言、編譯器、
解釋器 4
1.1.4 Java位元組代碼 6
1.1.5 類載入器 7
1.2 Java基礎 8
1.2.1 Java語言的歷史 8
1.2.2 應用程式和小套用
程式 9
1.2.3 第一個Java應用程式 9
1.2.4 編寫、編譯和運行
Java程式 13
1.3 編程基礎 15
1.3.1 面向對象編程 15
1.3.2 算法 17
1.3.3 測試與調試 19
1.3.4 軟體重用 20
1.4 圖形補充材料 21
1.4.1 一個示例圖形小套用
程式 21
1.4.2 圖形的大小和位置 23
1.4.3 繪製橢圓和圓 24
1.4.4 繪製弧形 25
1.4.5 運行小應用程式 27
1.5 本章小結 27
練習題 28
編程項目 29
自測題答案 30
第2章 基本計算 33
2.1 變數和表達式 33
2.1.1 變數 33
2.1.2 數據類型 35
2.1.3 Java標識符 37
2.1.4 賦值語句 38
2.1.5 簡單輸入 41
2.1.6 簡單螢幕輸出 42
2.1.7 常量 43
2.1.8 具名常量 44
2.1.9 賦值兼容性 45
2.1.10 類型強制轉換 46
2.1.11 數學運算符 49
2.1.12 小括弧與優先權
??規則 51
2.1.13 特殊賦值運算符 53
2.1.14 增量和減量運算符 58
2.1.15 增量和減量運算符的
更多介紹 59
2.2 String類 60
2.2.1 字元串常量和變數 60
2.2.2 字元串的拼接 61
2.2.3 String類的方法 62
2.2.4 字元串處理 65
2.2.5 轉義字元 66
2.2.6 Unicode字元串 67
2.3 鍵盤與螢幕的輸入輸出 68
2.3.1 螢幕輸出 69
2.3.2 鍵盤輸入 71
2.3.3 其他輸入分隔設定
(選讀) 76
2.3.4 使用printf進行格式
化輸出(選讀) 77
2.4 文檔與風格 79
2.4.1 有意義的變數名稱 79
2.4.2 注釋 79
2.4.3 縮進 82
2.4.4 使用具名常量 82
2.5 圖形補充材料 84
2.5.1 運用到圖形小套用程
序上的樣式規則 85
2.5.2 使用JFrame類創建
Java GUI應用程式 85
2.5.3 JOptionPane類概述 89
2.5.4 以其他數值類型方式
讀取輸入 96
2.6 本章小結 98
練習題 99
編程實踐 101
編程項目 102
自測題答案 105
第3章 程式控制流:分支 109
3.1 if-else語句 109
3.1.1 基本if-else語句 109
3.1.2 布爾表達式 115
3.1.3 比較字元串 119
3.1.4 嵌套if-else語句 123
3.1.5 多分支if-else語句 125
3.1.6 條件運算符
(選讀) 131
3.1.7 exit方法 132
3.2 boolean類型 133
3.2.1 布爾變數 133
3.2.2 優先權規則 135
3.2.3 布爾值的輸入和
輸出 137
3.3 switch語句 138
3.3.1 枚舉 144
3.4 圖形補充材料 145
3.4.1 指定繪圖顏色 146
3.4.2 表達“是”或“否”
提問的對話框 149
3.5 本章小結 151
練習題 151
編程實踐 153
編程項目 154
自測題答案 155
第4章 程式控制流:循環 158
4.1 Java循環語句 158
4.1.1 while語句 158
4.1.2 do-while語句 162
4.1.3 for語句 173
4.1.4 在for語句內部聲明
變數 178
4.1.5 在for語句中使用
逗號(選讀) 179
4.1.6 for-each語句 180
4.2 使用循環編程 181
4.2.1 循環體 181
4.2.2 初始化語句 182
4.2.3 控制循環疊代次數 183
4.2.4 循環中的break語句
和continue語句
(選讀) 190
4.2.5 循環錯誤 192
4.2.6 跟蹤變數 194
4.2.7 斷言檢查 195
4.3 圖形補充材料 197
4.3.1 drawString方法 202
4.4 本章小結 203
練習題 203
編程實踐 205
編程項目 207
自測題答案 210
第5章 定義類與方法 215
5.1 類與方法定義 215
5.1.1 類檔案與分別編譯 217
5.1.2 實例變數 218
5.1.3 方法 220
5.1.4 定義void方法 223
5.1.5 定義返回一個值的
方法 224
5.1.6 關鍵字this 231
5.1.7 局部變數 233
5.1.8 語句塊 235
5.1.9 基本類型參數 235
5.2 信息隱藏與封裝 241
5.2.1 信息隱藏 241
5.2.2 前置條件注釋與後置
條件注釋 241
5.2.3 public與private修
飾符 242
5.2.4 訪問器方法和修改器
方法 248
5.2.5 調用方法的方法 255
5.2.6 封裝 260
5.2.7 使用javadoc完成
自動文檔 263
5.2.8 UML類圖 263
5.3 對象和引用 264
5.3.1 類類型變數 264
5.3.2 為類定義equals
方法 269
5.3.3 布爾值方法 274
5.3.4 類類型的參數 278
5.4 圖形補充材料 285
5.4.1 Graphics類 285
5.4.2 Graphics2D類與
Java 2D API 289
5.4.3 init方法 291
5.4.4 向小應用程式中添加
標籤 292
5.5 本章小結 295
練習題 296
編程實踐 299
編程項目 300
自測題答案 304
第6章 再論對象與方法 310
6.1 構造器 311
6.1.1 定義構造器 311
6.1.2 在構造器中調用
方法 319
6.1.3 從一個構造器中
調用另一個構造
器(選讀) 322
6.2 靜態變數與靜態方法 323
6.2.1 靜態變數 323
6.2.2 靜態方法 325
6.2.3 將main方法的任務
劃分為子任務 330
6.2.4 把main方法添加到
一個類中 331
6.2.5 Math類 334
6.2.6 包裝類 336
6.3 編寫方法 340
6.3.1 分解 346
6.3.2 解決編譯器的關注 347
6.3.3 測試方法 348
6.4 重載 350
6.4.1 重載基礎 350
6.4.2 重載與自動類型
轉換 353
6.4.3 重載與返回類型 355
6.5 再論信息隱藏 363
6.5.1 私有性泄露 363
6.6 將枚舉看作類 367
6.7 包 369
6.7.1 包與導入 369
6.7.2 包名和目錄 371
6.7.3 名稱衝突 373
6.8 圖形補充材料 373
6.8.1 添加按鈕 374
6.8.2 事件驅動編程 375
6.8.3 編程按鈕 376
6.8.4 添加圖示 381
6.8.5 改變可見性 383
6.9 本章小結 386
練習題 387
編程項目 389
自測題答案 392
第7章 數組 399
7.1 數組基礎 400
7.1.1 創建和訪問數組 400
7.1.2 數組細節 403
7.1.3 實例變數length 406
7.1.4 再論數組下標 408
7.1.5 初始化數組 411
7.2 在類和方法中使用數組 412
7.2.1 下標變數作為方法
參量 420
7.2.2 整個數組作為方法的
參量 422
7.2.3 方法main的參量 423
7.2.4 數組賦值和相等 424
7.2.5 返回數組的方法 427
7.3 使用數組和類進行編程 431
7.3.1 部分填充數組 438
7.4 排序和搜尋數組 439
7.4.1 選擇排序 439
7.4.2 其他排序算法 444
7.4.3 搜尋數組 444
7.5 多維數組 445
7.5.1 多維數組基礎 446
7.5.2 多維數組參數和
返回值 449
7.5.3 多維數組的Java
表示 451
7.5.4 不規則數組
(選讀) 452
7.6 圖形補充材料 459
7.6.1 文本域和文本欄位 459
7.6.2 類JTextArea和
JTextField 462
7.6.3 繪製多邊形 463
7.7 本章小結 465
練習題 466
編程實踐 470
編程項目 472
自測題答案 476
第8章 繼承、多態與接口 483
8.1 繼承基礎 483
8.1.1 派生類 484
8.1.2 覆蓋方法定義 488
8.1.3 覆蓋和重載 489
8.1.4 final修飾符 489
8.1.5 基類的私有實例變數
和私有方法 490
8.1.6 UML繼承圖 491
8.2 使用繼承編程 493
8.2.1 派生類中的構造器 493
8.2.2 再論this方法 495
8.2.3 調用覆蓋方法 495
8.2.4 在Undergraduate中
定義equals方法的
另一種途徑 500
8.2.5 類型兼容性 500
8.2.6 Object類 504
8.2.7 更好的equals方法 506
8.3 多態 508
8.3.1 動態綁定與繼承 508
8.3.2 與toString動態綁定 511
8.4 接口與抽象類 512
8.4.1 類接口 512
8.4.2 Java接口 513
8.4.3 實現接口 514
8.4.4 接口作為類型使用 516
8.4.5 擴展接口 519
8.4.6 抽象類 535
8.5 圖形補充材料 537
8.5.1 JApplet類 538
8.5.2 JFrame類 538
8.5.3 視窗事件和視窗
偵聽器 541
8.5.4 ActionLisener接口 542
8.5.5 下一步做什麼 542
8.6 本章小結 543
練習題 544
編程實踐 545
編程項目 546
自測題答案 548
第9章 異常處理 552
9.1 基本異常的處理 552
9.1.1 Java中的異常 552
9.1.2 預定義異常類 561
9.2 自定義異常類 563
9.3 異常類深入介紹 572
9.3.1 聲明異常(轉移
責任) 572
9.3.2 異常的種類 575
9.3.3 錯誤 576
9.3.4 多個拋出和多個
捕獲 577
9.3.5 finally語句塊 583
9.3.6 重新拋出
異常(選讀) 583
9.4 圖形補充材料 595
9.4.1 GUI中的異常 595
9.5 本章小結 599
練習題 599
編程實踐 601
編程項目 602
自測題答案 606
第10章 流、檔案I/O與網路技術 610
10.1 流與檔案I/O概述 610
10.1.1 流的概念 611
10.1.2 為什麼使用檔案
進行I/O 611
10.1.3 文本檔案和二進制
檔案 611
10.2 文本檔案I/O 613
10.2.1 創建文本檔案 613
10.2.2 往文本檔案添加
內容 618
10.2.3 從文本檔案讀取
數據 620
10.3 操作任意檔案的技巧 622
10.3.1 File類 622
10.3.2 使用路徑名 624
10.3.3 File類的方法 625
10.3.4 定義打開流的
方法 627
10.4 基本二進制檔案I/O 631
10.4.1 創建二進制檔案 631
10.4.2 把基本類型的數值
寫入二進制檔案 633
10.4.3 把字元串寫入二
進制檔案 636
10.4.4 writeUTF的一些
細節 636
10.4.5 讀取二進制檔案 637
10.4.6 EOFException類 641
10.5 使用對象和數組進行二
進制檔案I/O 648
10.5.1 使用類的對象進行
二進制檔案I/O 648
10.5.2 串列化的一些
細節 652
10.5.3 二進制檔案中的
數組對象 653
10.6 使用流進行網路通信 655
10.7 圖形補充材料 660
10.8 本章小結 666
練習題 666
編程實踐 669
編程項目 670
自測題答案 674
第11章 遞歸 680
11.1 遞歸基礎 680
11.1.1 遞歸的工作原理 687
11.1.2 無限遞歸 690
11.1.3 遞歸方法與疊代
方法的對比 693
11.1.4 返回值的遞歸
方法 695
11.2 使用遞歸編程 698
11.3 本章小結 711
練習題 711
編程實踐 713
編程項目 714
自測題答案 718
第12章 動態數據結構與泛型 721
12.1 基於數組的數據結構 722
12.1.1 ArrayList類 722
12.1.2 創建ArrayList的
實例 723
12.1.3 使用ArrayList的
方法 724
12.1.4 參數化類和通用
數據類型 730
12.2 Java集合框架 730
12.2.1 Collection接口 730
12.2.2 HashSet類 731
12.2.3 Map接口 732
12.2.4 HashMap類 733
12.3 鏈式數據結構 735
12.3.1 LinkedList類 735
12.3.2 鍊表 736
12.3.3 實現鍊表操作 738
12.3.4 私有性泄露 744
12.3.5 內部類 745
12.3.6 結點內部類 746
12.3.7 疊代器 746
12.3.8 Java Iterator接口 756
12.3.9 鍊表的異常處理 757
12.3.10 鍊表的變體 759
12.3.11 其他鏈式數據
結構 761
12.4 泛型 762
12.4.1 泛型基礎 762
12.5 本章小結 769
練習題 770
編程實踐 773
編程項目 773
自測題答案 777
附錄 782
附錄1 獲得Java 782
附錄2 運行小應用程式 782
附錄3 protected與包修飾符 783
附錄4 DecimalFormat類 784
附錄5 javadoc 787
附錄6 C++和Java之間的
差別 789
附錄7 Unicode字元編碼 792

相關詞條

熱門詞條

聯絡我們