《面向對象程式設計實用教程(第二版)》是2007年7月1日清華大學出版社出版的圖書,作者是張海藩、牟永敏。
基本介紹
- 中文名:面向對象程式設計實用教程(第二版)
- 出版社:清華大學出版社
- 出版地:北京
- ISBN:9787302146438
- 定價:29 元
- 裝幀:平裝
圖書簡介,圖書目錄,
圖書簡介
由於面向對象技術存在一系列突出優點,來這種技術越來越受到人們的重視,對它的套用和研究遍及計算機的各個領域,絕大多數高校都開設了“面向對象程式設計”之類的課程。本書總結了編者多年來從事面向對象程式設計教學和軟體開發的經驗體會,在授課講稿和科研記錄基礎上經過精心修改、潤色並補充了大量新材料而寫成。
圖書目錄
第1章 計算機與程式設計 1
1.1 計算機的基本結構 1
1.1.1 計算機硬體的基本組成 1
1.1.2 計算機的工作過程 4
1.2 程式設計語言 5
1.3 面向過程程式設計 8
1.3.1 模組化 8
1.3.2 抽象 9
1.3.3 信息隱藏和局部化 10
1.3.4 模組獨立 10
1.3.5 結構程式設計技術 11
1.4 小結 12
習題 13
第2章 面向對象方法學引論 14
2.1 面向對象方法學概述 14
2.1.1 面向對象方法學導論 14
2.1.2 面向對象方法概述 15
2.1.3 面向對象方法的主要優點 17
2.1.4 噴泉模型 20
2.2 面向對象的概念 21
2.2.1 對象 21
2.2.2 其他概念 24
2.3 面向對象建模 27
2.4 對象模型 29
2.4.1 類圖的基本符號 29
2.4.2 表示關係的符號 31
2.5 動態模型 35
2.5.1 狀態 35
2.5.2 事件 36
2.5.3 符號 36
2.5.4 例子 37
2.6 功能模型 38
2.6.1 用例圖 38
2.6.2 用例建模 40
2.7 3種模型之間的關係 41
2.8 小結 42
習題 43
第3章 一個面向對象的C++程式實例 44
3.1 面向對象分析與設計 44
3.1.1 需求陳述 44
3.1.2 面向對象分析 44
3.1.3 面向對象設計 45
3.2 用C++實現 47
3.2.1 定義類 48
3.2.2 聲明數據成員 49
3.2.3 聲明和定義成員函式 50
3.2.4 完整的C++程式 51
3.2.5 運行C++程式 55
3.3 小結 56
習題 57
第4章 數據成員 58
4.1 數據類型 58
4.1.1 基本數據類型 58
4.1.2 複合數據類型 61
4.1.3 指針和引用 65
4.2 const數據成員 72
4.3 靜態數據成員 73
4.4 動態數據成員與對象生存期 75
4.4.1 動態數據成員 75
4.4.2 對象生存期與數據成員作用域 77
4.5 小結 78
習題 79
第5章 成員函式 81
5.1 成員函式的概念 81
5.2 算法描述 81
5.2.1 算法的概念 81
5.2.2 算法的表示 82
5.3 成員函式的定義與調用 83
5.3.1 成員函式的定義 83
5.3.2 成員函式的調用 84
5.3.3 函式指針與回調函式 85
5.3.4 內聯函式 88
5.4 運算符和表達式 89
5.4.1 運算符及運算符優先權 89
5.4.2 表達式 91
5.4.3 數據類型的轉換 94
5.5 控制結構 96
5.5.1 順序結構 96
5.5.2 選擇結構(又稱分支結構) 96
5.5.3 循環結構 101
5.5.4 遞歸 106
5.6 函式參數的傳遞機制 107
5.6.1 值調用 107
5.6.2 引用調用 109
5.7 函式的參數 110
5.7.1 函式參數的求值順序 110
5.7.2 數組作為函式參數 111
5.7.3 帶默認值的函式 113
5.8 靜態成員函式 114
5.9 函式的重載 115
5.10 兩種特殊函式 117
5.10.1 構造函式 117
5.10.2 析構函式 118
5.11 用計算機求解智力遊戲 118
5.12 小結 119
習題 120
第6章 封裝性 123
6.1 C++中的類與對象 123
6.1.1 定義類的語法 123
6.1.2 定義類的例子 125
6.1.3 聲明和使用對象 127
6.2 封裝的好處 129
6.3 對象成員 132
6.4 const對象和const成員 134
6.4.1 const對象和唯讀成員函式 134
6.4.2 const對象成員 135
6.5 對象數組 136
6.6 自引用指針(this) 138
6.7 友元 141
6.8 小結 144
習題 145
第7章 繼承性 147
7.1 繼承的好處 147
7.2 C++定義派生類的語法 150
7.2.1 定義派生類的語法 150
7.2.2 訪問權修飾符 150
7.3 基類成員的訪問屬性 152
7.3.1 同名成員 152
7.3.2 靜態成員 154
7.3.3 訪問聲明 156
7.4 派生類對象的初始化 159
7.5 多重繼承 161
7.5.1 語法 161
7.5.2 同名引出的二義性 162
7.5.3 公共基類帶來的二義性 163
7.5.4 虛基類 165
7.6 基類與派生類之間的轉換 167
7.6.1 賦值兼容規則 168
7.6.2 賦值兼容規則套用舉例 169
7.7 小結 171
習題 172
第8章 重載 175
8.1 重載的好處 175
8.2 對運算符重載的限制 178
8.3 運算符重載的語法 180
8.3.1 用成員函式重載運算符 180
8.3.2 用成員函式重載運算符之例 181
8.3.3 用友元函式重載運算符 184
8.3.4 用友元函式重載運算符之例 184
8.4 重載賦值運算符 187
8.4.1 指針懸掛問題 187
8.4.2 重載賦值運算符解決指針懸掛問題 189
8.5 重載++和- -運算符 190
8.6 重載運算符的規則 191
8.7 類類型轉換 193
8.7.1 用構造函式完成類類型轉換 193
8.7.2 類類型轉換函式 195
8.8 小結 197
習題 198
第9章 多態性 202
9.1 靜態聯編與動態聯編 202
9.1.1 靜態聯編 202
9.1.2 動態聯編 205
9.2 虛函式的聲明與使用 206
9.2.1 聲明虛函式 206
9.2.2 使用虛函式 207
9.2.3 動態聯編的實現 209
9.3 虛函式套用實例之一 210
9.4 純虛函式 212
9.5 虛函式套用實例之二 213
9.6 多態性帶來的好處 218
9.7 小結 220
習題 221
第10章 I/O流 224
10.1 C++流庫概述 224
10.2 預定義類型的輸入/輸出 226
10.2.1 istream流類 226
10.2.2 ostream流類 227
10.2.3 輸入運算符 227
10.2.4 輸出運算符 229
10.3 格式控制 230
10.3.1 用ios類成員函式控制格式 230
10.3.2 用控制符控制格式 233
10.4 自定義類型的輸入/輸出 236
10.4.1 重載輸入運算符 236
10.4.2 重載輸出運算符 237
10.5 檔案的輸入/輸出 238
10.5.1 面向檔案的流類 239
10.5.2 檔案的讀寫 240
10.6 小結 244
習題 245
第11章 模板 247
11.1 從類屬到模板 247
11.1.1 無約束類屬 247
11.1.2 約束類屬 248
11.2 函式模板與模板函式 249
11.2.1 概念 249
11.2.2 重載 250
11.3 類模板與模板類 252
11.3.1 定義類模板 252
11.3.2 使用類模板 253
11.3.3 類模板的派生 254
11.4 模板套用實例 255
11.4.1 用類模板實現類屬鍊表 255
11.4.2 派生出集合類模板和集合類 258
11.5 小結 259
習題 260
第12章 異常處理 262
12.1 異常的概念 262
12.2 異常處理的基本思想 262
12.3 C++異常處理的實現 263
12.3.1 異常處理的語法 263
12.3.2 異常的實現步驟與簡單實例 264
12.3.3 使用異常處理機制的規則 266
12.4 異常拋出與捕獲的對應關係 266
12.5 標準程式庫異常處理 271
12.6 小結 273
習題 273
第13章 面向對象程式設計方法的套用實例 274
13.1 需求 274
13.2 分析 274
13.2.1 定義問題域 274
13.2.2 分析並抽象出與監測有關的類 275
13.2.3 描述與監測有關的類之間的關係 276
13.2.4 分析與抽象出與顯示有關的類 277
13.2.5 分析與抽象出與運行機制有關的類 277
13.2.6 綜合出系統的初步對象模型 279
13.3 設計 280
13.3.1 系統構架 280
13.3.2 系統的詳細對象模型 281
13.3.3 確定機制 282
13.3.4 定義與計時器相關類 282
13.3.5 定義管理監測類的容器類 283
13.3.6 綜合出系統的運行機制 285
13.3.7 制定完善細化功能模組的順序 285
13.3.8 定義與監測有關的類 286
13.4 小結 288
習題 289
第14章 基於Windows的面向對象語言——VC++ 290
14.1 Windows的編程模式 290
14.2 Microsoft基礎類庫(MFC)及應用程式框架 293
14.3 Microsoft基礎類庫的訊息映射 301
14.4 VC++的文檔-視圖模型 301
14.5 VC++程式設計實例 303
14.5.1 面向對象分析 304
14.5.2 面向對象設計 306
14.6 小結 311
習題 311
第15章 基於Windows的面向對象語言——Java 312
15.1 Java的特點 312
15.2 Java簡介 315
15.2.1 Java中類的定義 315
15.2.2 Java類中的數據與方法 315
15.2.3 Java中的繼承性 317
15.2.4 Java中的多態性 317
15.3 Java與C++的區別 318
15.4 JVM的概念與規範 320
15.4.1 JVM的概念 320
15.4.2 JVM的規範 320
15.5 Java的套用 321
15.6 小結 327
習題 327
附錄A 常用庫函式一覽表 328
附錄B ASCII碼錶註解 330
附錄C 鍵盤常用鍵對應ASCII碼 331
附錄D ASCII基表 333
附錄E ASCII擴展表 334
參考文獻 335