《Java編程原理與實踐(第4版)》是2005年清華大學出版社出版的圖書,作者是馬海軍。
基本介紹
- 中文名:Java編程原理與實踐(第4版)
- 作者:馬海軍
- 出版社:清華大學出版社
- 出版時間:2005年8月
- 定價:99 元
- 裝幀:平裝
- ISBN:9787302109327
圖書簡介,圖書目錄,
圖書簡介
依照使用方法的不同,本書同時適用於初學及需要進階的學生。本書可以用作大一新生兩個學期的編程科目教材及一個學期的作為第二種語言的Java科目教材,也可以作為有經驗的編程人員的短期培訓教材。全世界的計算機科學系、工程學系、管理信息系統系都在各種不同級別上使用本書。
圖書目錄
第1部分 編程基礎
第1章 Java簡介 1
1.1 引言 1
1.2 Java的發展史 2
1.3 Java的特徵 2
1.3.1 Java的簡單性 2
1.3.2 Java的面向對象性 2
1.3.3 Java的分布性 3
1.3.4 Java的解釋性 3
1.3.5 Java的健壯性 4
1.3.6 Java的安全性 5
1.3.7 Java與體系結構無關 5
1.3.8 Java的可移植性 5
1.3.9 Java的性能 6
1.3.10 Java的多執行緒性 6
1.3.11 Java的動態性 6
1.4 World Wide Web、Java及其他 7
1.5 Java語言規範 9
1.6 Java開發工具 9
1.7 一個簡單的Java程式 10
1.8 創建、編譯和執行Java程式 11
1.9 應用程式剖析 12
1.9.1 注釋 13
1.9.2 保留字 13
1.9.3 修飾符 13
1.9.4 語句 13
1.9.5 塊 14
1.9.6 類 14
1.9.7 方法 14
1.9.8 main方法 14
1.10 在訊息對話框中顯示文本 15
1.11 複習題 16
1.12 編程練習 17
第2章 基本數據類型及操作 18
2.1 引言 18
2.2 編寫簡單的程式 18
2.3 標識符 21
2.4 變數 21
2.5 賦值語句和賦值表達式 22
2.6 常量 24
2.7 數字數據類型 25
2.7.1 數字操作符 25
2.7.2 數字字面值 26
2.7.3 數學表達式 27
2.7.4 簡潔操作符 27
2.8 數字類型轉換 29
2.9 字元數據類型 31
2.10 布爾數據類型 33
2.11 操作符優先權和結合性 36
2.12 運算元運算次序 37
2.13 從輸入對話框獲得輸入 38
2.14 實例分析 40
2.15 編程風格及文檔編制 45
2.15.1 合適的注釋和注釋風格 45
2.15.2 命名慣例 46
2.15.3 合適的縮進格式和空格 46
2.15.4 塊樣式 46
2.15.5 代碼樣式示例 47
2.16 編程錯誤 47
2.16.1 語法錯誤 47
2.16.2 運行時錯誤 48
2.16.3 邏輯錯誤 49
2.17 調試 50
2.18 複習題 50
2.19 編程練習 54
第3章 控制語句 57
3.1 引言 57
3.2 選擇語句 57
3.2.1 簡單if語句 58
3.2.2 if…else語句 59
3.2.3 嵌套if語句 61
3.2.4 switch語句 65
3.2.5 條件表達式 67
3.3 循環語句 68
3.3.1 while循環 68
3.3.2 do-while循環 71
3.3.3 for循環 73
3.4 選擇哪種循環 78
3.5 使用關鍵字break和continue 79
3.6 實例分析 83
3.7 複習題 90
3.8 編程練習 96
第4章 方法 100
4.1 引言 100
4.2 創建方法 100
4.3 調用方法 102
4.4 傳遞參數 104
4.5 重載方法 107
4.6 局部變數的作用域 109
4.7 方法抽象 110
4.8 Math類 111
4.8.1 三角函式方法 111
4.8.2 指數方法 112
4.8.3 取整方法 112
4.8.4 min、max、abs
和random方法 113
4.9 實例分析 117
4.10 遞歸(選學) 124
4.10.1 計算階乘 124
4.10.2 計算Fibonacci數字 127
4.10.3 河內塔問題 130
4.10.4 遞歸與疊代 133
4.11 複習題 134
4.12 編程練習 139
第5章 數組 142
5.1 引言 142
5.2 聲明數組變數和創建數組 142
5.3 初始化和處理數組 144
5.4 給方法傳遞數組 149
5.5 複製數組 157
5.6 多維數組 159
5.6.1 聲明多維數組的變數
並創建多維數組 159
5.6.2 獲取多維數組的長度 161
5.6.3 不規則數組 161
5.7 搜尋數組 168
5.7.1 線性搜尋法 168
5.7.2 對分搜尋法(選學) 170
5.8 排序數組 174
5.9 複習題 177
5.10 編程練習 178
第2部分 面向對象的程式設計
第6章 對象和類 180
6.1 引言 180
6.2 為對象定義類 181
6.3 創建對象和對象引用變數 182
6.3.1 基本類型和引用類型變數
之間的區別 183
6.3.2 無用單元收集 184
6.3.3 訪問對象的數據和方法 185
6.4 構造函式 188
6.5 可見性修飾符和存取器方法 191
6.6 將對象傳遞給方法 194
6.7 靜態變數、常量和方法 196
6.8 變數的作用域 201
6.9 關鍵字this 202
6.10 對象數組 203
6.11 類抽象 205
6.12 實例分析 206
6.13 Java應用程式接口 214
6.14 複習題 215
6.15 編程練習 223
第7章 字元串 227
7.1 引言 227
7.2 字元串類 227
7.2.1 構造字元串 227
7.2.2 字元串長度和
檢索單個字元 229
7.2.3 合併字元串 230
7.2.4 提取子串 230
7.2.5 比較字元串 231
7.2.6 字元串轉換 232
7.2.7 在字元串中查找
字元或者子串 232
7.2.8 字元串和數組的轉換 233
7.2.9 字元和數字轉換為
字元串 233
7.3 Character類 235
7.4 StringBuffer類 238
7.4.1 構造字元串緩衝區 239
7.4.2 修改緩衝區中的字元串 239
7.4.3 toString、capacity、length、
setLength和charAt方法 240
7.5 StringTokenizer類 242
7.6 命令行變元 244
7.6.1 向Java程式中傳遞變元 244
7.6.2 處理命令行變元 245
7.7 複習題 247
7.8 編程練習 248
第8章 類繼承和接口 250
8.1 引言 250
8.2 超類和子類 250
8.3 使用關鍵字super 252
8.3.1 調用超類構造函式 253
8.3.2 調用超類方法 254
8.4 重寫方法 254
8.5 Object類 256
8.5.1 equals方法 257
8.5.2 toString方法 257
8.5.3 clone方法 258
8.6 protected修飾符和final修飾符 258
8.6.1 protected修飾符 258
8.6.2 使用可見性修飾符 259
8.6.3 final修飾符 260
8.7 抽象類 260
8.8 多態性、動態綁定和通用編程 266
8.9 強制轉換對象類型和
instanceof操作符 268
8.10 隱藏欄位和靜態方法(選學) 271
8.11 接口 273
8.11.1 接口與抽象類 277
8.11.2 Cloneable接口(選學) 278
8.12 內部類 284
8.13 初始化塊(選學) 285
8.14 複習題 287
8.15 編程練習 294
第9章 面向對象軟體開發 296
9.1 引言 296
9.2 軟體開發過程 296
9.3 分析對象間關係 297
9.3.1 關聯關係 297
9.3.2 聚集關係 298
9.3.3 繼承關係 299
9.4 類的開發 300
9.5 類設計原則 314
9.5.1 設計類 314
9.5.2 使用修飾符public、
protected、private和static 314
9.5.3 使用繼承和組合 315
9.5.4 使用接口或者抽象類 315
9.6 處理基本類型值對象 316
9.6.1 數字型包裝器類構造函式 316
9.6.2 數字型包裝器類常量 317
9.6.3 轉換方法 317
9.6.4 靜態valueof方法 318
9.6.5 將字元串轉換
為數字的方法 318
9.7 實例分析(選學) 321
9.8 為鍊表設計類(選學) 329
9.9 複習題 336
9.10 編程練習 338
第3部分 GUI編程
第10章 開始GUI編程 340
10.1 引言 340
10.2 Java GUI API 341
10.3 框架 343
10.3.1 創建框架 344
10.3.2 使框架居中(選學) 344
10.3.3 在框架內添加組件 346
10.4 布局管理器 347
10.4.1 FlowLayout 347
10.4.2 GridLayout 350
10.4.3 BorderLayout 351
10.4.4 布局管理器的
屬性(選學) 353
10.4.5 validate和doLayout
方法(選學) 354
10.5 將面板作為容器使用 354
10.6 在面板中繪製圖形 356
10.7 Color類 358
10.8 Font和FontMetrics類 358
10.9 繪製幾何圖形 364
10.9.1 繪製線段 364
10.9.2 繪製矩形 365
10.9.3 繪製橢圓 367
10.9.4 繪製圓弧 369
10.9.5 繪製多邊形 370
10.10 實例分析 373
10.11 事件驅動編程 378
10.11.1 事件和事件源 378
10.11.2 事件註冊、偵聽和處理 380
10.11.3 處理事件 381
10.12 複習題 390
10.13 編程練習 391
第11章 創建用戶界面 399
11.1 引言 399
11.2 Component及JComponent類 399
11.3 按鈕 400
11.4 標籤 405
11.5 文本域 408
11.6 文本區 411
11.7 組合框 416
11.8 列表 420
11.9 複選框 423
11.10 單選按鈕 428
11.11 邊界 434
11.12 JOptionPane對話框 442
11.12.1 訊息對話框 443
11.12.2 確認對話框 444
11.12.3 輸入對話框 445
11.12.4 選項對話框 447
11.13 選單 450
11.13.1 創建選單 450
11.13.2 圖像圖示、鍵盤記憶鍵
和鍵盤加速鍵 453
11.14 創建多重視窗 458
11.15 滾動條 463
11.16 滾動面板 466
11.17 帶有標籤的面板 471
11.18 複習題 475
11.19 編程練習 476
第12章 applet和高級GUI 483
12.1 引言 483
12.2 applet類 483
12.2.1 init方法 485
12.2.2 start方法 485
12.2.3 stop方法 485
12.2.4 destroy方法 486
12.3 Japplet類 486
12.4 HTML檔案和
12.4.1使用applet查看器實用
程式查看applet 488
12.4.2從web瀏覽器查看
applet 489
12.5將參數傳遞到applet 493
12.6支持applet作為應用程式運行 495
12.7滑鼠事件 498
12.8鍵盤事件 504
12.9使用序列圖和狀態圖
為動態行為建模 508
12.9.1序列圖 508
12.9.2狀態圖 509
12.10實例分析(選學) 509
12.11事件適配器(選學) 516
12.11.1標準適配器 517
12.11.2匿名適配器 520
12.12包裝和部署Java項目(選學) 523
12.12.1清單檔案 524
12.12.2運行歸檔項目 524
12.13CardLayout管理器(選學) 525
12.14GridBagLayout管理器(選學) 529
12.15不使用布局管理器(選學) 533
12.16複習題 535
12.17編程練習 536
第4部分開發綜合項目
第13章異常處理 540
13.1引言 540
13.2異常和異常類型 541
13.3理解異常處理 543
13.3.1聲明異常 543
13.3.2拋出異常 544
13.3.3捕捉異常 544
13.4重新拋出異常 552
13.5finally子句 552
13.6使用異常時的警告 553
13.7創建自定義的異常類(選學) 553
13.8複習題 559
13.9編程練習 566
第14章國際化 568
14.1引言 568
14.2Locale類 568
14.3處理日期和時間 571
14.3.1Date類 571
14.3.2Calendar和
GregorianCalendar類 571
14.3.3TimeZone類 571
14.3.4DateFormat類 572
14.3.5SimpleDateFormat類 572
14.4格式化數字 587
14.5資源包(選學) 593
14.6複習題 601
14.7編程練習 602
第15章多執行緒 605
15.1引言 605
15.2執行緒概念 605
15.3通過擴展Thread類創建執行緒 606
15.4通過實現Runnable接口
創建執行緒 609
15.5執行緒控制與通信 611
15.6執行緒狀態 612
15.7執行緒組 614
15.8同步 614
15.8.1關鍵字synchronized 617
15.8.2同步的語句 619
15.9為applet創建執行緒 619
15.10使用Timer類控制動畫 625
15.11實例分析 626
15.12複習題 632
15.13編程練習 633
第16章多媒體 637
16.1引言 637
16.2播放音頻 637
16.3在單獨的執行緒上運行音頻 643
16.4顯示圖像 645
16.5在Java應用程式中載入
圖像和音頻檔案 649
16.6顯示一列圖像 654
16.7使用MediaTracker 658
16.8複習題 660
16.9編程練習 661
第17章輸入和輸出 665
17.1引言 665
17.2流類 666
17.2.1InputStream和Reader 667
17.2.2OutputStream和Writer 668
17.3File類 668
17.4處理外部檔案 672
17.5過濾器流 675
17.6數據流 676
17.7列印流 679
17.8緩衝流 682
17.9檔案對話框 686
17.10控制台上的文本輸入
和輸出(選學) 691
17.11對象流 694
17.11.1ObjectOutputStream和
ObjectInputStream類 695
17.11.2關鍵字transient 700
17.12隨機存取檔案 701
17.13分析文本檔案(選學) 712
17.14數組流、管道流、字元串流、
回推流和行號流(選學) 716
17.15複習題 716
17.16編程練習 717
第18章聯網技術 721
18.1引言 721
18.2客戶機/伺服器計算 721
18.3服務於多個客戶機和
InetAddress類 728
18.4applet客戶機 733
18.5傳送和接收對象 740
18.6URL類以及從applet
瀏覽Web頁 745
18.7從Web伺服器檢索檔案 747
18.8使用JEditorPane瀏覽
HTML檔案 751
18.9案例分析(選學) 754
18.10複習題 770
18.11編程練習 770
第19章Java數據結構 773
19.1引言 773
19.2Collection接口和
AbstractCollection類 774
19.2.1Collection接口中的方法 774
19.2.2hashCode方法和
equals方法 775
19.3Set接口、AbstractSet類和
HashSet類 775
19.4SortedSet接口和TreeSet類 777
19.5Comparator接口 779
19.6List接口、AbstractList類和
AbstractSequentiaList類 781
19.7ArrayList類和LinkedList類 782
19.8Vector類和Stack類 784
19.9Map接口、AbstractMap類、
SortedMap接口、HashMap類
和TreeMap類 790
19.10Collection類 794
19.11Arrays類 798
19.12複習題 800
19.13編程練習 801