Java程式設計與問題解決(第6版)

Java程式設計與問題解決(第6版)

《Java程式設計與問題解決(第6版)》是2012年出版的圖書,作者是WalterSavitch。

基本介紹

  • 書名:Java程式設計與問題解決(第6版)
  • 作者:Walter Savitch
  • 譯者: 張長富
  • ISBN:9787302296508
  • 類別:計算機科學課程
  • 定價:98元
  • 出版時間:2012-11-23
  • 裝幀:平裝
圖書簡介,圖書信息,圖書前言,圖書目錄,

圖書簡介

本書是一部適用於高校多個專業運用Java講授計算機科學課程的理想教材。本書向學生傳授了面向對象的編程以及與此相關的一些重要概念,比如設計、測試與調試、編程風格、接口繼承以及異常處理。它涵蓋了Java的關鍵特性,並在全書自始至終貫穿了對象的思想。除了介紹小應用程式之外,本書將重點放在了講授應用程式編程上。

圖書信息

ISBN:9787302296508
定價:98元
印次:1-1
裝幀:平裝
印刷日期:2012-11-23
作者:Walter Savitch 著 張長富 等譯

圖書前言

本書用於傳授Java程式語言,更為重要的是,傳授基本的編程技巧。它不要求具備任何編程經驗,對數學的要求也不超過高中的簡單代數。但是,要全面享用本書的收穫,讀者應該在自己的計算機上已經安裝了Java,這樣就能夠練習給出的示例和技巧。最好採用Java的最新版本,但版本5的Java也依然可用。
如果讀者以前曾經編寫過程式
使用本書不需要讀者具備先前的任何編程經驗,本書專為初學者設計。如果讀者碰巧具備某些其他程式語言的經驗,那么不要想當然地認為Java像你已經熟悉使用的那個程式語言一樣。所有的語言都不相同,都存在差異,即使這些差別很小,但也足以帶來問題。瀏覽一下前四章,至少要閱讀一下“扼要重述”部分。當你閱讀到第5章時,最好閱讀整個章節。
如果讀者以前曾經使用C或C++編過程式,那么到Java的轉換可能是既舒服又麻煩不斷。初看起來,Java幾乎與C或C++相同。但是,Java與這些語言存在很大的差異,讀者需要清醒地意識到這些差異。附錄6比較了Java與C++,以便幫助讀者了解這些差異是 什麼。
獲取Java的拷貝
附錄1提供了下載Java編譯器和編程環境的站點連結。對於初學者來說,我們推薦使用Oracle的Java JDK作為你的Java編譯器,相關軟體和TextPad作為編寫Java代碼的簡單編輯器環境,當下載Java JDK時,確保獲取最新的可用版本。
用於學生的支持材料
* 本書中程式以及額外示例的原始碼
* 學生實驗室手冊
* VideoNotes:編程示例和練習的視頻解決方案
學習援助
每一章都包含了幫助讀者學習本書的數個特性:
* 開篇概述:包括簡要內容列表、本章目標、必備知識以及一到兩段讀者將學習什麼的說明。
* 扼要重述精確地總結了Java語法以及其他重要概念的主要內容。
* FAQ,或者稱作“常問問題”,回答了其他學生已經提出的疑問。
* 謹記突出強調了你應該牢記在心的概念。
* 編程技巧給出了提高你的編程技能的途徑。
* 疑難雜症標識了編程過程中你可能會犯——也應該避免——的潛在錯誤。
* 旁白提供了相關問題的簡短闡述。
* 自測題全面測試你的知識,其答案放在每一章的末尾。練習你所學東西的最佳途徑之一是在查看答案之前完成自測題。
* 每一章的末尾給出了重要概念的概要。
使用MyProgrammingLab的在線上練習
MyProgrammingLab是一個自學和實踐工具,它由數百個小型練習組成,這些練習圍繞本書的體系組織。系統自動檢測你提交代碼中的邏輯和語法錯誤,並給出有針對性的提示,讓你能夠明白什麼地方發生了錯誤——以及為什麼發生這樣的錯誤。
VideoNotes
這些簡短的循序漸進視頻演示了如何從設計到編碼的整個過程來解決問題。VideoNotes支持易於導航的自主控制,包括每一個練習都具備選擇、播放、重放、快進以及停止等能力。
本教材也是一部參考書
除了將本書用做教材之外,你能夠也應該將它用作一部參考書。當你需要查閱某個遺忘的要點,或者聽別人提及過、但你自己還沒有學到的某個要點時,以索引為嚮導查閱一下。很多索引條目都給出了“扼要重述”所在的頁碼。翻到相應的頁面,頁面中將包含簡短、醒目的條目,它給出了該主題的所有基本要點。你可以以這種方式查閱Java語言的細節以及編程技巧的細節。
每一章的扼要重述為你提供了該章主要內容的簡短概要。並且,你能夠使用這些特性複習該章內容或者查閱Java語言的細節。

圖書目錄

第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 品嘗Java8
1.2.1 Java語言的歷史8
1.2.2 應用程式和小套用
程式9
1.2.3 第一個Java套用
程式9
1.2.4 編寫、編譯和運行
Java程式14
1.3 編程基礎15
1.3.1 面向對象編程15
1.3.2 算法18
1.3.3 測試與調試19
1.3.4 軟體重用20
1.4 圖形補充材料21
1.4.1 一個示例圖形小
應用程式22
1.4.2 圖案的大小和
位置23
1.4.3 繪製橢圓和圓25
1.4.4 繪製弧形25
1.4.5 運行小應用程式27
1.5 本章小結28
練習題28
編程項目30
自測題答案31
第2章 基礎計算34
2.1 變數和表達式34
2.1.1 變數34
2.1.2 數據類型36
2.1.3 Java標識符38
2.1.4 賦值語句40
2.1.5 簡單輸入42
2.1.6 簡單螢幕輸出43
2.1.7 常量44
2.1.8 命名常量46
2.1.9 賦值兼容性47
2.1.10 類型強制轉換47
2.1.11 數學運算符50
2.1.12 小括弧和優先權
規則53
2.1.13 特殊賦值運算符54
2.1.14 增量和減量運算符59
2.1.15 增量和減量運算符的
更多介紹60
2.2 String類61
2.2.1 字元串常量和變數61
2.2.2 字元串的拼接62
2.2.3 String方法63
2.2.4 字元串處理66
2.2.5 轉義字元67
2.2.6 Unicode字元串68
2.3 鍵盤和螢幕的輸入輸出69
2.3.1 螢幕輸出69
2.3.2 鍵盤輸入72
2.3.3 其他輸入分隔設定
(選讀)77
2.3.4 使用printf的格式化
輸出(選讀)78
2.4 文檔和風格80
2.4.1 有意義的變數名稱80
2.4.2 注釋81
2.4.3 縮進83
2.4.4 使用命名常量84
2.5 圖形補充材料86
2.5.1 運用到圖形小套用
程式上的樣式規則86
2.5.2 使用JFrame類創建
Java GUI應用程式87
2.5.3 類JOptionPane概述90
2.5.4 以其他數值類型方式
讀取輸入97
2.6 本章小結100
練習題101
編程項目103
自測題答案105
第3章 控制流:分支110
3.1 if-else語句110
3.1.1 基本if-else語句110
3.1.2 布爾表達式116
3.1.3 比較字元串120
3.1.4 嵌套if-else語句124
3.1.5 多分支if-else語句126
3.1.6 條件運算符
(選讀)133
3.1.7 exit方法134
3.2 boolean類型135
3.2.1 布爾變數135
3.2.2 優先權規則136
3.2.3 布爾值的輸入和
輸出138
3.3 switch語句140
3.3.1 枚舉146
3.4 圖形補充材料147
3.4.1 指定繪圖顏色147
3.4.2 表達“是”或“否”
提問的對話框151
3.5 本章小結152
練習題153
編程項目155
自測題答案156
第4章 控制流:循環160
4.1 Java循環語句160
4.1.1 while語句160
4.1.2 do-while語句164
4.1.3 for語句175
4.1.4 在for語句內部聲明
變數180
4.1.5 在for語句中使用
逗號(選讀)181
4.1.6 for-each語句182
4.2 使用循環編程183
4.2.1 循環體183
4.2.2 初始化語句184
4.2.3 控制循環疊代次數185
4.2.4 循環中的break語句
和continue語句
(選讀)192
4.2.5 循環錯誤195
4.2.6 跟蹤變數196
4.2.7 斷言檢查198
4.3 圖形補充材料199
4.3.1 drawString方法204
4.4 本章小結205
練習題205
編程項目207
自測題答案211
第5章 定義類和方法216
5.1 類和方法定義216
5.1.1 類檔案和獨立
編譯218
5.1.2 實例變數219
5.1.3 方法221
5.1.4 定義void方法224
5.1.5 定義返回一個值的
方法225
5.1.6 關鍵字this232
5.1.7 局部變數234
5.1.8 語句塊236
5.1.9 基本類型參數237
5.2 信息隱藏和封裝242
5.2.1 信息隱藏242
5.2.2 前置條件注釋和
後置條件注釋243
5.2.3 public和private
修飾符244
5.2.4 訪問器方法和
修改器方法249
5.2.5 調用方法的方法257
5.2.6 封裝262
5.2.7 使用javadoc完成
自動文檔264
5.2.8 UML類圖265
5.3 對象和引用265
5.3.1 類類型變數266
5.3.2 為類定義相等
方法271
5.3.3 布爾值方法276
5.3.4 類類型參數280
5.4 圖形補充材料286
5.4.1 Graphics類287
5.4.2 init方法291
5.4.3 向小應用程式中
添加標籤292
5.5 本章小結295
練習題296
編程項目299
自測題答案303
第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方法添加
到類中332
6.2.5 Math類334
6.2.6 包裝類336
6.3 編寫方法340
6.3.1 分解346
6.3.2 解決編譯器的
關注347
6.3.3 測試方法349
6.4 重載351
6.4.1 重載基礎351
6.4.2 重載和自動類型
轉換353
6.4.3 重載和返回類型355
6.5 再論信息隱藏364
6.5.1 私有性泄露364
6.6 將枚舉看做類368
6.7 包370
6.7.1 包和移入370
6.7.2 包名稱和目錄371
6.7.3 名稱衝突373
6.8 圖形補充材料374
6.8.1 添加按鈕375
6.8.2 事件驅動編程376
6.8.3 編程按鈕377
6.8.4 添加圖示382
6.8.5 改變可見性384
6.9 本章小結387
練習題388
編程項目390
自測題答案394
第7章 數組401
7.1 數組基礎402
7.1.1 創建和訪問數組402
7.1.2 數組細節405
7.1.3 實例變數length408
7.1.4 數組下標的深入
介紹410
7.1.5 初始化數組413
7.2 類和方法中的數組414
7.2.1 下標變數作為
方法參量422
7.2.2 整個數組作為方法的
參量424
7.2.3 方法main的參量425
7.2.4 數組賦值和相等426
7.2.5 返回數組的方法429
7.3 使用數組和類編程433
7.3.1 部分填充數組440
7.4 排序和搜尋數組441
7.4.1 選擇排序442
7.4.2 其他排序算法446
7.4.3 搜尋數組446
7.5 多維數組447
7.5.1 多維數組基礎448
7.5.2 多維數組參數和
返回值451
7.5.3 多維數組的Java
表示453
7.5.4 不規則數組
(選讀)454
7.6 圖形補充材料461
7.6.1 文本域和文本
欄位461
7.6.2 類JTextArea和
JTextField464
7.6.3 繪製多邊形465
7.7 本章小結467
練習題468
編程項目472
自測題答案477
第8章 繼承、多態和接口484
8.1 繼承基礎484
8.1.1 派生類485
8.1.2 覆蓋方法定義489
8.1.3 覆蓋和重載490
8.1.4 final修飾符490
8.1.5 基類的私有實例
變數和私有方法491
8.1.6 UML繼承圖492
8.2 使用繼承編程494
8.2.1 派生類中的
構造器494
8.2.2 再論this方法496
8.2.3 調用覆蓋方法496
8.2.4 在Undergraduate中
定義equals方法的
另一種途徑501
8.2.5 類型兼容性501
8.2.6 Object類505
8.2.7 更好的equals
方法507
8.3 多態509
8.3.1 動態綁定和繼承509
8.3.2 使用toString的
動態綁定512
8.4 接口和抽象類513
8.4.1 類接口513
8.4.2 Java接口514
8.4.3 實現接口515
8.4.4 接口作為類型使用517
8.4.5 擴展接口520
8.4.6 抽象類537
8.5 圖形補充材料539
8.5.1 JApplet類539
8.5.2 JFrame類539
8.5.3 視窗事件和視窗
偵聽器542
8.5.4 ActionLisener接口543
8.5.5 下一步做什麼544
8.6 本章小結544
練習題545
編程項目546
自測題答案549
第9章 異常處理553
9.1 基本異常處理553
9.1.1 Java中的異常553
9.1.2 預定義異常類562
9.2 定義自己的異常類564
9.3 異常類的更多細節573
9.3.1 聲明異常(把責任
轉移出去)573
9.3.2 異常的種類576
9.3.3 出錯578
9.3.4 多個拋出和多個
捕獲578
9.3.5 finally語句塊584
9.3.6 重新拋出異常
(選讀)584
9.4 圖形補充材料595
9.4.1 GUI中的異常596
9.5 本章小結599
練習題600
編程項目602
自測題答案606
第10章 流和檔案I/O611
10.1 流和檔案I/O概覽611
10.1.1 流的概念612
10.1.2 為什麼使用
檔案進行I/O612
10.1.3 文本檔案和
二進制檔案612
10.2 文本檔案I/O614
10.2.1 創建文本檔案614
10.2.2 添加到文本
檔案上619
10.2.3 從文本檔案讀取
數據621
10.3 使用任意檔案的技巧623
10.3.1 File類623
10.3.2 使用路徑名稱625
10.3.3 File類的方法626
10.3.4 定義打開流的
方法628
10.4 基本二進制檔案I/O632
10.4.1 創建二進制檔案632
10.4.2 將基本類型的值
寫入二進制檔案634
10.4.3 將字元串寫入
二進制檔案637
10.4.4 writeUTF的
一些細節637
10.4.5 讀取二進制檔案638
10.4.6 EOFException類642
10.5 對象和數組的二進制
檔案I/O649
10.5.1 類的對象的
二進制檔案I/O649
10.5.2 串列化的一些
細節653
10.5.3 二進制檔案中的
數組對象654
10.6 圖形補充材料656
10.7 本章小結662
練習題663
編程項目665
自測題答案668
第11章 遞歸674
11.1 遞歸基礎674
11.1.1 遞歸是如何
工作的681
11.1.2 無限遞歸684
11.1.3 遞歸方法與疊代
方法的對比687
11.1.4 返回值的遞歸
方法689
11.2 使用遞歸編程692
11.3 本章小結705
練習題705
編程項目707
自測題答案711
第12章 動態數據結構和泛型715
12.1 基於數組的數據結構716
12.1.1 類ArrayList716
12.1.2 創建ArrayList的
實例717
12.1.3 使用ArrayList的
方法718
12.1.4 參數化類和通用
數據類型724
12.2 Java集合框架724
12.2.1 Collection接口725
12.2.2 HashSet類725
12.2.3 Map接口727
12.2.4 HashMap類727
12.3 連結數據結構729
12.3.1 類LinkedList729
12.3.2 鍊表730
12.3.3 實現鍊表操作732
12.3.4 隱私泄露739
12.3.5 內部類739
12.3.6 結點內部類740
12.3.7 疊代器741
12.3.8 Java Iterator接口752
12.3.9 鍊表的異常處理752
12.3.10 鍊表的變化754
12.3.11 其他連結數據
結構756
12.4 泛型756
12.4.1 基礎756
12.5 本章小結764
練習題765
編程項目767
自測題答案771
附錄776
附錄1 得到Java776
附錄2 運行小應用程式776
附錄3 protected和包修飾符777
附錄4 DecimalFormat類778
附錄5 Javadoc781
附錄6 C++和Java之間的
差別783
附錄7 Unicode字元編碼786

相關詞條

熱門詞條

聯絡我們