Java程式設計教程(原書第3版)

Java程式設計教程(原書第3版)

《Java程式設計教程(原書第3版)》是2015年3月機械工業出版社出版的圖書,作者是(美)Struart Reges、Marty Stepp。

基本介紹

  • 書名:Java程式設計教程(原書第3版)
  • 作者:(美)Struart Reges、Marty Stepp
  • ISBN:9787111489900
  • 定價:119元
  • 出版社:機械工業出版社
  • 出版時間:2015年3月
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

本書採用從基礎開始的講法,先介紹面向過程的程式設計方法,打下牢固的編程基礎後,再講述面向對象的程式設計方法。主要內容包括:程式設計基礎、數組、定義類、遞歸、繼承和接口、圖形用戶接口、排序和查找、集合等,本書在大部分章節都配有練習題,對理解和消化書中的概念極有幫助,適合學生和初學者自學參考。

圖書目錄

Building Java Programs: A Back to Basics Approach, Third Edition
出版者的話
譯者序
前言
第1章 Java編程簡介 1
1.1 計算的基本概念 1
1.1.1 為什麼要編程 1
1.1.2 硬體和軟體 2
1.1.3 數字王國 2
1.1.4 程式設計的過程 4
1.1.5 為什麼選擇Java 5
1.1.6 Java編程環境 5
1.2 現在開始介紹Java 6
1.2.1 字元串常量 9
1.2.2System.out.println 9
1.2.3 轉義序列 10
1.2.4 print和println 10
1.2.5 標識符和關鍵字 12
1.2.6 一個複雜的例子:DrawFigures1 13
1.2.7 注釋與程式可讀性 14
1.3 程式中的錯誤 16
1.3.1 語法錯誤 16
1.3.2 邏輯錯誤 18
1.4 過程分解 18
1.4.1靜態方法 20
1.4.2 控制流程 22
1.4.3 調用其他方法的方法 24
1.4.4 運行時錯誤舉例 26
1.5 案例分析:輸出圖形 27
1.5.1 結構化的版本 27
1.5.2 無冗餘的最終版本 28
1.5.3 執行流程的分析 30
本章小結 31
第2章 基本數據類型和確定循環 32
2.1 數據的基本概念 32
2.1.1 基本類型 32
2.1.2 表達式 33
2.1.3 常值 34
2.1.4 算術運算符 35
2.1.5 優先權 36
2.1.6 類型混用和類型轉換 38
2.2 變數 39
2.2.1 賦值和聲明變數 42
2.2.2 字元串連線 44
2.2.3 增量和減量運算符 46
2.2.4 變數和混合類型 47
2.3 for循環 49
2.3.1 跟蹤for循環 50
2.3.2 for循環模式 52
2.3.3 循環嵌套 53
2.4 複雜性管理 55
2.4.1 作用域 55
2.4.2 偽代碼 59
2.4.3 類常量 61
2.5 案例分析:輸出複雜的圖形 63
2.5.1 問題分解和偽代碼 63
2.5.2 第一個結構化版本 64
2.5.3 增加一個類常量 66
2.5.4 進一步修改 68
本章小結 69
第3章 參數和對象 70
3.1 參數 70
3.1.1 參數的機制 72
3.1.2 參數的限制 75
3.1.3 多重參數 77
3.1.4 參數和常量 79
3.1.5 方法重載 79
3.2 具有返回值的方法 80
3.2.1 Math類 81
3.2.2 編寫具有返回值的方法 83
3.3 使用對象 85
3.3.1 String對象 86
3.3.2 互動式程式和Scanner對象 90
3.3.3 互動式程式示例 92
3.4 案例分析:拋物線軌跡 93
3.4.1 非結構化解決方案 96
3.4.2 結構化解決方案 98
本章小結 100
第3G章 圖形(選學) 101
3G.1 圖形簡介 101
3G.1.1 DrawingPanel 101
3G.1.2 繪製線段和圖形 102
3G.1.3 顏色 105
3G.1.4 循環繪圖 106
3G.1.5 文本和字型 108
3G.2 圖形處理中的過程分解 110
3G.3 案例分析:金字塔 113
3G.3.1 非結構的部分解決方案 113
3G.3.2 繪製金字塔的通用方法 114
3G.3.3 完全的結構化解決方案 116
本章小結 117
第4章 條件執行 118
4.1 if/else語句 118
4.1.1 關係運算符 119
4.1.2 嵌套if/else語句 120
4.1.3 對象的相等性 125
4.1.4 構造if/else語句 126
4.1.5 多重條件測試 127
4.2 積累式算法 128
4.2.1 累加和 128
4.2.2 最小/最大循環 130
4.2.3 使用if計算累加和 133
4.2.4 截斷錯誤 134
4.3 文本處理 136
4.3.1 char類型 137
4.3.2 char與int 137
4.3.3 積累式文本處理算法 138
4.3.4 System.out.printf 139
4.4 條件執行的方法 142
4.4.1 前提條件和後置條件 142
4.4.2 拋出異常 143
4.4.3 重溫返回值 145
4.4.4 推敲執行路徑 148
4.5 案例分析:計算健康指數 150
4.5.1 單人版無結構化解決方案 151
4.5.2 兩人版無結構化解決方案 153
4.5.3 兩人版結構化解決方案 155
4.5.4 面向過程的程式設計原則 158
本章小結 161
第5章 程式邏輯和不確定循環 162
5.1 while循環 162
5.1.1 尋找最小約數的循環 163
5.1.2 隨機數字 165
5.1.3 計算機模擬技術 168
5.1.4 do/while循環 169
5.2 籬笆樁算法 170
5.2.1 哨兵循環 171
5.2.2 使用if語句處理籬笆樁 172
5.3 布爾類型 174
5.3.1 邏輯運算符 175
5.3.2 短路特性 176
5.3.3 boolean變數和標誌 180
5.3.4 boolean的禪意 181
5.3.5 布爾表達式的非運算 183
5.4 用戶錯誤 184
5.4.1 初識Scanner對象 184
5.4.2 處理用戶錯誤 186
5.5 斷言和程式邏輯 187
5.5.1 分析斷言 188
5.5.2 斷言舉例 190
5.6 案例分析:猜數字 192
5.6.1 無提示的初始版本 192
5.6.2 帶有提示的隨機版本 194
5.6.3 健壯的最終版本 197
本章小結 199
第6章 檔案處理 201
6.1 讀取檔案的基本方法 201
6.1.1 隨處可見的數據 201
6.1.2 檔案與檔案對象 202
6.1.3 使用Scanner對象讀取檔案內容 203
6.2 基於標記的檔案處理 206
6.2.1 檔案的結構和處理輸入 208
6.2.2 Scanner對象的參數 211
6.2.3 路徑和目錄 212
6.2.4 一個更複雜的輸入檔案 214
6.3 基於行的處理 215
6.4 高級檔案處理 220
6.4.1 使用PrintStream輸出檔案內容 220
6.4.2 保證檔案可讀 224
6.5 案例分析:郵政編碼查詢 225
本章小結 231
第7章 數組 232
7.1 數組的基本概念 232
7.1.1 創建並遍歷數組 232
7.1.2 訪問數組 235
7.1.3 一個使用數組的完整程式 237
7.1.4 隨機訪問 240
7.1.5 數組與方法 241
7.1.6 for-each循環 244
7.1.7 數組初始化 245
7.1.8 Arrays類 246
7.2 數組遍歷算法 247
7.2.1 列印數組 247
7.2.2 查詢與替換 249
7.2.3 判斷相等性 251
7.2.4 逆序數組 252
7.2.5 字元串遍歷算法 255
7.3 引用語義 256
7.4 高級數組技術 259
7.4.1 移動數組中的元素 259
7.4.2 對象數組 262
7.4.3 命令行參數 263
7.4.4 嵌套循環算法 263
7.5 多維數組 265
7.5.1 規則的二維數組 265
7.5.2 鋸齒狀二維數組 266
7.6 案例分析:本福德定律 270
7.6.1 計數器 270
7.6.2 完整的程式 273
本章小結 277
第8章 類 279
8.1 面向對象程式設計的基本概念 279
8.1.1 類和對象 280
8.1.2 Point對象 281
8.2 對象的狀態與行為 282
8.2.1 對象的狀態:欄位 282
8.2.2 對象的行為:方法 284
8.2.3 隱含的參數 286
8.2.4 修改器和訪問器 287
8.2.5 toString方法 289
8.3 對象的初始化:構造函式 290
8.3.1 關鍵字this 293
8.3.2 多個構造函式 295
8.4 封裝 296
8.4.1 私有成員 296
8.4.2 類的不變式 301
8.4.3 改變類的內部實現 303
8.5 案例分析: 設計一個表示股票信息的類 305
8.5.1 面向對象程式設計討論 305
8.5.2 Stock類的欄位和方法聲明 307
8.5.3 Stock類的構造函式和實例方法的實現 308
本章小結 311
第9章 繼承和接口 313
9.1 繼承的基本概念 313
9.1.1 程式設計之外的層次結構 314
9.1.2 擴展類 315
9.1.3 重寫方法 318
9.2 與父類互動 320
9.2.1 調用重寫的方法 320
9.2.2 訪問繼承的欄位 320
9.2.3 調用父類的構造函式 322
9.2.4 DividendStock類的行為 323
9.2.5 Object類 325
9.2.6 equals方法 326
9.2.7 instanceof關鍵字 328
9.3 多態性 329
9.3.1 多態機制 331
9.3.2 解析繼承代碼 333
9.3.3 解析複雜的調用關係 334
9.4 繼承和設計 336
9.4.1 繼承的誤用 336
9.4.2 “是一個”和“有一個”關係 338
9.4.3 Graphics2D類 339
9.5 接口 340
9.5.1 形狀類的接口 341
9.5.2 實現接口 342
9.5.3 接口的優點 344
9.6 案例分析: 設計一組具有層次關係的金融類 346
9.6.1 設計類 346
9.6.2 初步實現 349
9.6.3 抽象類 352
本章小結 356
第10章 ArrayList 357
10.1 ArrayList 357
10.1.1 ArrayList的基本操作 358
10.1.2 ArrayList的查找方法 361
10.1.3 一個完整的ArrayList程式 363
10.1.4 向ArrayList添加或刪除元素 364
10.1.5 使用for-each循環訪問ArrayList 367
10.1.6 包裝類 368
10.2 Comparable接口 370
10.2.1 自然排序和compareTo方法 372
10.2.2 實現Comparable接口 374
10.3 案例分析:辭彙表比較 378
10.3.1 關於程式執行效率的考慮 379
10.3.2 版本1:計算辭彙量 380
10.3.3 版本2:計算重疊部分 383
10.3.4 版本3:完整的程式 386
本章小結 390
第11章 Java的集合框架 391
11.1 列表 391
11.1.1 集合 391
11.1.2 LinkedList與ArrayList 392
11.1.3 疊代器 394
11.1.4 抽象數據類型 397
11.1.5 LinkedList類案例分析:篩法 398
11.2 數學集合 401
11.2.1 數學集合的概念 402
11.2.2 TreeSet與HashSet 403
11.2.3 數學集合上的運算 404
11.2.4 Set類案例分析:彩票機 406
11.3 映射 407
11.3.1 基本映射操作 408
11.3.2 映射視圖(keySet和values) 409
11.3.3 TreeMap與HashMap 411
11.3.4 Map類案例分析:字數統計 411
11.3.5 集合綜述 413
本章小結 414
第12章 遞歸 415
12.1 遞歸的思想 415
12.1.1 一個與編程無關的例子 415
12.1.2 將疊代方法改寫為遞歸方法 417
12.1.3 遞歸方法的結構 419
12.2 一個更好的遞歸實例 420
12.3 遞歸函式和數據 428
12.3.1 整數的冪運算 428
12.3.2 求最大公約數 430
12.3.3 目錄爬蟲 434
12.3.4 助手方法 437
12.4 遞歸圖形 439
12.5 遞歸回溯 442
12.5.1 一個簡單的例子:移動路線問題 442
12.5.2 8皇后問題 445
12.5.3 數獨問題 450
12.6 案例分析:求解前序表達式 453
12.6.1 中序、前序、後序表達式 453
12.6.2 計算前序表達式 454
12.6.3 完整的程式 456
本章小結 458
第13章 查找與排序 459
13.1 Java類庫中的查找與排序 459
13.1.1 二分法查找 460
13.1.2 排序 462
13.1.3 洗牌 463
13.1.4 用比較器來自定義順序 464
13.2 程式的複雜度 467
13.2.1 實驗分析 469
13.2.2 算法的複雜度類型 471
13.3 查找和排序算法的實現 473
13.3.1 順序查找 473
13.3.2 二分法查找 474
13.3.3 遞歸二分法查找 476
13.3.4 查找對象 479
13.3.5 選擇排序 479
13.4 案例分析:歸併排序算法的實現 482
13.4.1 分解與合併數組 482
13.4.2 遞歸的歸併排序 484
13.4.3 完整的程式 487
本章小結 489
第14章 棧與佇列 490
14.1 棧/佇列基礎 490
14.1.1 棧的概念 490
14.1.2 佇列的概念 492
14.2 棧/佇列常用操作 493
14.2.1 棧與佇列互換 494
14.2.2 佇列元素求和 495
14.2.3 棧元素求和 496
14.3 棧/佇列高級操作 498
14.3.1 刪除佇列中的元素 498
14.3.2 比較兩個棧 499
14.4 案例分析:表達式求值 501
14.4.1 標記分解 502
14.4.2 求值計算 505
本章小結 509
第15章 實現集合類 511
15.1 簡單ArrayIntList類 511
15.1.1 添加數值和列印功能 511
15.1.2 關於封裝的思考 515
15.1.3 處理列表的中間內容 516
15.1.4 引入另一個構造函式和常量 519
15.1.5 前提條件和後置條件 520
15.2 更完整的ArrayIntList類 523
15.2.1 拋出異常 523
15.2.2 方便的方法 525
15.3 高級功能 527
15.3.1 自動調整列表大小 527
15.3.2 添加疊代器 528
15.4 ArrayList 類 533
本章小結 536
第16章 鍊表 538
16.1 鍊表節點 538
16.1.1 創建鍊表 539
16.1.2 鍊表基礎操作 541
16.1.3 操作節點 542
16.1.4 鍊表遍歷 545
16.2 鍊表類 547
16.2.1 簡單LinkedIntList類 547
16.2.2 追加新節點 549
16.2.3 操作中間節點 551
16.3 複雜的鍊表操作 557
16.4 IntList接口 561
16.5 LinkedList類 564
16.5.1 鍊表的變體技術 564
16.5.2 鍊表的疊代器 566
16.5.3 其他代碼細節 568
本章小結 570
第17章 二叉樹 571
17.1 二叉樹基礎 571
17.2 遍歷二叉樹 574
17.3 樹的常見操作 584
17.3.1 節點求和 584
17.3.2 計算樹的層數 585
17.3.3 計算葉子節點數量 586
17.4 二叉搜尋樹 587
17.4.1 二叉搜尋樹性質 587
17.4.2 構建二叉搜尋樹 588
17.4.3 x = change(x)模式 591
17.4.4 在樹中進行搜尋 594
17.4.5 二叉搜尋樹的複雜性 597
17.5 SearchTree類 597
本章小結 600
第18章 高級數據結構 602
18.1 散列技術 602
18.1.1 利用數組實現數學集合 602
18.1.2 散列函式和散列表 603
18.1.3 衝突 604
18.1.4 再散列 608
18.1.5 非整型數據的散列處理 610
18.1.6 HashMap的實現 612
18.2 優先權佇列和堆 613
18.2.1 優先權佇列 613
18.2.2 堆的概述 614
18.2.3 從堆中刪除元素 615
18.2.4 向堆添加元素 616
18.2.5 利用數組實現堆 617
18.2.6 堆排序 620
本章小結 621
附錄A Java總結 622
附錄B Java API規範和Javadoc注釋 631
附錄C Java 語法補充說明 635
索引 642

相關詞條

熱門詞條

聯絡我們