《寫給大家看的面向對象編程書)》是一部獨具特色的面向對象技術著作,結合代碼示例生動透徹地講述了面向對象思想的精髓,讓讀者真正學會以對象方式進行思考。此外,還討論了各種與面向對象概念密切相關的套用主題,包括XML、UML建模語言、持久存儲、分散式計算和客戶/伺服器技術等。內容精煉,示例簡單明了,適合各層次面向對象開發人員閱讀,也是高校相關專業面向對象課程的理想教學參考書。
基本介紹
- 書名:寫給大家看的面向對象編程書
- 作者:(美國)MattWeisfeld
- 出版社:人民郵電出版社
- 出版時間:2009
版權資訊,作者簡介,編輯推薦,章節目錄,
版權資訊
書 名: 寫給大家看的面向對象編程書
作 者:(美國)MattWeisfeld
出版時間: 2009
ISBN: 9787115197764
開本: 16
定價: 45.00 元
作者簡介
MattWeisfeld,資深軟體技術專家。在C++、Smalltalk、.NET和Java方面具有20多年的專業軟體開發經驗、項目管理經驗和培訓經驗。此外,他也是許多主要計算機技術雜誌和專業期刊的撰稿人。
編輯推薦
《寫給大家看的面向對象編程書(第3版)》與眾不同,用非常通俗易懂的方式,結合卓有趣味的示例,清晰透徹地闡述了面向對象的精體。書中不涉及任何特定程式語言的細節,而是把重點放在引導讀者學會如何以對象的方式思考。新版本增加了許多與面向對象緊密相關的套用主題,包括XML、UML建模語言、持久對象、分散式計算和客戶/伺服器等,更加貼近實戰。
面向對象是目前許多主流程式設計語言的核心概念,很大程度上,可以說要想學好用好一門面向對象語言,首先必須領會面向對象編程思想。
講面向對象的書已經很多,但是理解面向對象之道對於很多人來說仍然不是容易的事情。
章節目錄
第1章 面向對象概念介紹 1
1.1 過程式程式設計與OO程式設計 2
1.2 從過程式開發轉向面向對象開發 4
1.2.1 過程式程式設計 5
1.2.2 OO程式設計 5
1.3 對象到底是什麼 5
1.3.1 對象數據 5
1.3.2 對象行為 6
1.4 類到底是什麼 9
1.4.1 類是對象模板 9
1.4.2 屬性 11
1.4.3 方法 11
1.4.4 訊息 11
1.5 使用UML完成類圖建模 12
1.6 封裝和數據隱藏 12
1.6.1 接口 12
1.6.2 實現 13
1.6.3 接口/實現范型的一個實際例子 13
1.6.4 接口/實現范型的模型 14
1.7 繼承 15
1.7.1 超類和子類 16
1.7.2 抽象 16
1.7.3 is-a關係 17
1.8 多態 18
1.9 組合 20
1.9.1 抽象 21
1.9.2 has-a關係 21
1.10 小結 21
1.11 本章使用的示例代碼 21
1.11.1 TestPerson示例 21
1.11.2 TestPerson示例 22
1.11.3 TestShape示例 23
1.11.4 TestShape示例 25
第2章 如何以對象方式思考 27
2.1 了解接口與實現之間的區別 28
2.1.1 接口 29
2.1.2 實現 29
2.1.3 接口/實現示例 29
2.2 設計接口時使用抽象思維 33
2.3 儘可能為用戶提供最小接口 35
2.3.1 確定用戶 35
2.3.2 對象行為 36
2.3.3 環境約束 36
2.3.4 明確公共接口 36
2.3.5 明確實現 37
2.4 小結 37
2.5 參考書目 38
第3章 高級面向對象概念 39
3.1 構造函式 39
3.1.1 何時調用構造函式 39
3.1.2 構造函式中有什麼 40
3.1.3 默認構造函式 40
3.1.4 使用多個構造函式 41
3.1.5 構造函式的設計 44
3.2 錯誤處理 44
3.2.1 忽略問題 45
3.2.2 檢查問題並中止套用 45
3.2.3 檢查問題並嘗試恢復 45
3.2.4 拋出異常 45
3.3 作用域概念 47
3.3.1 局部屬性 48
3.3.2 對象屬性 49
3.3.3 類屬性 50
3.4 操作符重載 51
3.5 多重繼承 52
3.6 對象操作 53
3.7 小結 54
3.8 參考書目 54
3.9 本章使用的示例代碼 54
3.9.1 TestNumber示例:C#.NET 54
3.9.2 TestNumber示例 55
第4章 類剖析 57
4.1 類名 57
4.2 注釋 58
4.3 屬性 59
4.4 構造函式 60
4.5 訪問方法 62
4.6 公共接口方法 63
4.7 私有實現方法 64
4.8 小結 64
4.9 參考書目 64
4.10 本章使用的示例代碼 65
4.10.1 TestCab示例:C#.NET 65
4.10.2 TestCab示例 66
第5章 類設計指導原則 68
5.1 真實世界系統建模 68
5.2 明確公共接口 69
5.2.1 最小公共接口 69
5.2.2 隱藏實現 69
5.3 設計健壯的構造函式(和析構函式) 70
5.4 在類中設計錯誤處理 70
5.4.1 對類建立文檔以及使用注釋 71
5.4.2 構建類要以合作為出發點 71
5.5 設計時充分考慮重用 72
5.6 設計時充分考慮到可擴展性 72
5.6.1 名字要有描述性 72
5.6.2 抽出不可移植的代碼 72
5.6.3 提供一種複製和比較對象的方法 73
5.6.4 讓作用域儘可能小 73
5.6.5 類應當對自己負責 74
5.7 設計時充分考慮可維護性 75
5.7.1 使用疊代 76
5.7.2 測試接口 76
5.8 使用對象持久性 78
5.9 小結 79
5.10 參考書目 79
5.11 本章使用的示例代碼 79
5.11.1 TestMath示例:C#.NET 79
5.11.2 TestMath示例 80
第6章 利用對象實現設計 81
6.1 設計指導原則 81
6.1.1 完成適當的分析 84
6.1.2 建立工作陳述 84
6.1.3 收集需求 84
6.1.4 開發用戶界面的原型 85
6.1.5 明確類 85
6.1.6 確定各個類的職責 85
6.1.7 確定類如何相互合作 85
6.1.8 創建類模型來描述系統 85
6.2 案例研究:blackjack示例 86
6.2.1 使用CRC卡 87
6.2.2 明確blackjack類 88
6.2.3 明確類的職責 90
6.2.4 UML用例:明確協作關係 95
6.2.5 第一輪CRC卡 98
6.2.6 UML類圖:對象模型 99
6.2.7 建立用戶界面原型 100
6.3 小結 101
6.4 參考書目 101
第7章 掌握繼承和組合 102
7.1 重用對象 102
7.2 繼承 103
7.2.1 一般化和特殊化 105
7.2.2 設計決策 105
7.3 組合 107
7.4 為什麼封裝在OO中如此重要 109
7.4.1 繼承如何削弱封裝 109
7.4.2 多態的一個詳細例子 111
7.4.3 對象職責 111
7.5 小結 115
7.6 參考書目 115
7.7 本章使用的示例代碼 115
7.7.1 TestShape示例:C#.NET 115
7.7.2 TestShape示例 117
第8章 框架與重用:使用接口和抽象類實現設計 119
8.1 代碼:重用還是不重用 119
8.2 什麼是框架 119
8.3 什麼是契約 121
8.3.1 抽象類 122
8.3.2 接口 124
8.3.3 集成 125
8.3.4 編譯器的證明 127
8.3.5 建立契約 128
8.3.6 系統插入點 130
8.4 一個電子商務例子 130
8.4.1 電子商務問題 130
8.4.2 非重用的方法 131
8.4.3 一個電子商務解決方案 133
8.4.4 UML對象模型 133
8.5 小結 137
8.6 參考書目 137
8.7 本章使用的示例代碼 138
8.7.1 TestShape示例:C#.NET 138
8.7.2 TestShape示例 140
第9章 構建對象 143
9.1 組合關係 143
9.2 分階段構建 144
9.3 不同類型的組合 146
9.3.1 聚集 146
9.3.2 關聯 146
9.3.3 結合使用關聯和聚集 148
9.4 避免依賴性 148
9.5 基數 149
9.5.1 多個對象關聯 151
9.5.2 可選關聯 151
9.6 集成示例 152
9.7 小結 152
9.8 參考書目 153
第10章 用UML創建對象模型 154
10.1 什麼是UML 154
10.2 類圖的結構 155
10.3 屬性和方法 156
10.3.1 屬性 156
10.3.2 方法 157
10.4 訪問指示 157
10.5 繼承 158
10.6 接口 159
10.7 組合 160
10.7.1 聚集 160
10.7.2 關聯 161
10.8 基數 161
10.9 小結 162
10.10 參考書目 163
第11章 對象和可移植數據:XML 164
11.1 可移植數據 164
11.2 XML 165
11.3 XML與HTML 166
11.4 XML和面向對象語言 166
11.5 兩個公司間共享數據 167
11.6 用DTD驗證文檔 168
11.7 將DTD集成到XML文檔 170
11.8 使用層疊樣式表 175
11.9 小結 177
11.10 參考書目 177
第12章 持久對象:串列化和關係資料庫 178
12.1 持久對象基礎 178
12.2 將對象保存到平面檔案 179
12.2.1 串列化檔案 180
12.2.2 再談實現和接口 182
12.2.3 方法如何保存 183
12.3 串列化過程中使用XML 183
12.4 寫至關係資料庫 186
12.5 載入驅動程式 189
12.5.1 建立連線 189
12.5.2 SQL語句 190
12.6 小結 192
12.7 參考書目 192
12.8 本章使用的示例代碼 192
12.8.1 Person類示例:C#.NET 193
12.8.2 Person類示例 195
第13章 對象與網際網路 197
13.1 分散式計算的演進 197
13.2 基於對象的腳本語言 197
13.3 JavaScript驗證示例 200
13.4 Web頁面中的對象 202
13.4.1 JavaScript對象 202
13.4.2 Web頁面控制項 204
13.4.3 聲音播放器 205
13.4.4 電影播放器 205
13.4.5 Flash 206
13.5 分散式對象和企業 206
13.5.1 公共對象請求代理體系結構(CORBA) 207
13.5.2 Web服務定義 210
13.5.3 Web服務代碼 213
13.5.4 Invoice.cs 214
13.5.5 Invoice.vb 215
13.6 小結 216
13.7 參考書目 216
第14章 對象和客戶/伺服器套用 217
14.1 客戶/伺服器方法 217
14.2 專有方法 217
14.2.1 串列化對象代碼 218
14.2.2 客戶代碼 218
14.2.3 伺服器代碼 220
14.2.4 運行專有的客戶/伺服器示例 222
14.3 非專有方法 223
14.3.1 對象定義代碼 223
14.3.2 客戶代碼 224
14.3.3 伺服器代碼 225
14.3.4 運行非專有的客戶/伺服器示例 227
14.4 小結 228
14.5 參考書目 228
14.6 本章使用的示例代碼 228
14.6.1 客戶/伺服器示例:對象定義代碼 228
14.6.2 客戶/伺服器示例:客戶代碼 229
14.6.3 客戶/伺服器示例:伺服器代碼 230
第15章 設計模式 232
15.1 為什麼研究設計模式 232
15.2 Smalltalk的模型/視圖/控制器 233
15.3 設計模式的不同類型 234
15.3.1 創建型模式 235
15.3.2 結構型模式 239
15.3.3 行為型模式 241
15.4 反模式 242
15.5 小結 243
15.6 參考書目 243
15.7 本章使用的示例代碼 243
15.7.1 C#.NET 244
索引 250