圖書信息
人民郵電出版社教材
書 名 C#面向對象程式設計(第2版)
叢 書 名 普通高等學校計算機教育“十二五”規劃教材
標準書號 ISBN 978-7-115-29761-7
作 者 鄭宇軍 編著
責任編輯 劉博
開 本 16 開
印 張 25.25
字 數 697 千字
頁 數 394 頁
裝 幀 平裝
版 次 第2版第1次
二版時間 2013年7月
本 印 次 2013年7月
首 印 數 -- 冊
定 價 49.80 元
內容提要
本書以面向對象的軟體工程思想為主線,細緻深入地講解了C#語言面向對象程式設計的方法和技巧,內容涵蓋面向對象的基本概念、基於接口的設計、泛型程式設計方法、Windows和WPF窗體界面、檔案和資料庫訪問,以及ASP.NET和Silverlight網站設計,並通過一個貫穿全書的“旅行社管理系統”案例展現了如何運用面向對象技術和C#語言來進行實際軟體系統開發。全書提供了豐富的示例代碼和課後習題。
本書適合作為高等院校計算機及相關專業的教材,也可供專業開發人員自學參考。
目錄
第1章 面向對象程式設計概述 1
1.1 電腦程式設計語言 1
1.2 面向對象的基本概念 2
1.2.1 對象 2
1.2.2 類 2
1.2.3 訊息和通信 2
1.2.4 關係 3
1.2.5 繼承 3
1.2.6 多態性 4
1.2.7 接口和組件 4
1.3 面向對象的開發方法 5
1.3.1 面向對象的分析 5
1.3.2 面向對象的設計 5
1.4 案例研究——旅行社管理系統的分析與設計 6
1.5 小結 8
1.6 習題 8
第2章 C#和Visual Studio開發環境基礎 9
2.1 C#語言和.NET技術簡介 9
2.2 C#程式的基本結構 10
2.2.1 注釋 10
2.2.2 命名空間 11
2.2.3 類型及其成員 11
2.2.4 程式主方法 12
2.2.5 程式集 12
2.3 Visual Studio開發環境 13
2.3.1 集成開發環境概述 13
2.3.2 創建控制台應用程式 14
2.3.3 創建和使用動態程式庫程式 15
2.3.4 創建Windows應用程式 15
2.3.5 創建ASP .NET應用程式 16
2.4 小結 18
2.5 習題 18
第3章 C#語法基礎 19
3.1 數據類型 19
3.1.1 簡單值類型 19
3.1.2 複合值類型 21
3.1.3 類 23
3.1.4 數組 25
3.1.5 類型轉換 27
3.2 操作符和表達式 30
3.2.1 算術操作符 30
3.2.2 自增和自減操作符 31
3.2.3 位操作符 31
3.2.4 賦值操作符 32
3.2.5 關係操作符 33
3.2.6 邏輯操作符 33
3.2.7 條件操作符 34
3.3 控制結構 35
3.3.1 選擇結構 35
3.3.2 循環結構 38
3.3.3 跳轉結構 42
3.4 案例研究——旅行社管理系統中結構和枚舉 44
3.5 小結 46
3.6 習題 46
第4章 類和對象 47
4.1 成員概述 47
4.1.1 成員種類 47
4.1.2 成員訪問限制 48
4.1.3 靜態成員和非靜態成員 49
4.1.4 常量欄位和唯讀欄位 50
4.2 方法 51
4.2.1 方法的返回值 52
4.2.2 參數類型 52
4.2.3 方法的重載 55
4.3 類的特殊方法 56
4.3.1 構造函式和析構函式 56
4.3.2 屬性 59
4.3.3 索引函式 61
4.3.4 操作符重載 62
4.4 this對象引用 65
4.5 常用類型 65
4.5.1 Object類 65
4.5.2 String類 66
4.5.3 StringBuilder類 72
4.5.4 Math類 72
4.5.5 DateTime結構 73
4.6 案例研究——旅行社業務類的實現 74
4.6.1 省份、城市和景點類 74
4.6.2 旅遊線路和方案類 76
4.6.3 旅行團和遊客類 78
4.7 小結 81
4.8 習題 81
第5章 繼承和多態 82
5.1 繼承 82
5.1.1 基類和派生類 82
5.1.2 隱藏基類成員 84
5.1.3 base關鍵字 86
5.1.4 對象的生命周期 87
5.2 多態性 89
5.2.1 虛擬方法和重載方法 89
5.2.2 抽象類和抽象方法 92
5.2.3 密封類和密封方法 94
5.3 案例研究——旅行社業務類的實現和精化 97
5.3.1 會員類 97
5.3.2 職員類 98
5.4 小結 103
5.5 習題 103
第6章 委託和事件 105
6.1 委託和方法 105
6.1.1 通過委託來封裝方法 105
6.1.2 委託的加減運算 107
6.1.3 傳遞委託對象 107
6.1.4 Delegate類型成員 109
6.2 匿名方法和Lambda表達式 110
6.2.1 匿名方法 110
6.2.2 Lambda表達式 111
6.2.3 外部變數 111
6.3 事件處理 112
6.3.1 委託發布和訂閱 112
6.3.2 事件發布和訂閱 114
6.3.3 使用EventHandler類 117
6.3.4 在事件中使用匿名方法 118
6.4 Windows控制項事件概述 120
6.5 案例研究——旅行團基本事件處理 122
6.5.1 旅行團事件發布 122
6.5.2 旅行團事件處理 123
6.6 小結 126
6.7 習題 126
第7章 Windows Form應用程式設計 127
7.1 圖形用戶界面概述 127
7.2 位置、坐標、顏色和字型 128
7.2.1 Size和SizeF結構 128
7.2.2 Point和PointF結構 128
7.2.3 Color結構 129
7.2.4 Font和FontFamily類 129
7.3 窗體、訊息框和對話框 130
7.3.1 窗體 130
7.3.2 訊息框 132
7.3.3 對話框 134
7.4 常用Windows控制項 135
7.4.1 Control類 135
7.4.2 標籤、文本框和數值框 137
7.4.3 按鈕、複選框和單選框 139
7.4.4 組合框和列表框 141
7.4.5 日曆控制項 143
7.4.6 滑塊、進度條和滾動條 144
7.4.7 圖片框控制項 145
7.4.8 容器控制項 146
7.4.9 列表視圖和樹型視圖 147
7.5 選單欄、工具列和狀態欄 151
7.5.1 選單欄 151
7.5.2 工具列 152
7.5.3 狀態欄 153
7.6 案例研究——旅行社信息窗體和登錄窗體 154
7.6.1 旅行社對象及其信息窗體 154
7.6.2 系統用戶及登錄窗體 156
7.7 小結 158
7.8 習題 158
第8章 對象持久性——檔案管理 159
8.1 檔案和流 159
8.1.1 File類 159
8.1.2 使用檔案流 161
8.1.3 FileInfo類 163
8.2 流的讀寫器 164
8.2.1 二進制讀寫器 164
8.2.2 文本讀寫器 165
8.3 檔案對話框 168
8.4 基於檔案的對象持久性 170
8.4.1 實現對象持久性 170
8.4.2 .NET中的自動持久性支持 172
8.5 案例研究——旅行社信息和系統用戶的持久性 177
8.5.1 旅行社對象的持久性 177
8.5.2 系統用戶對象的持久性 177
8.6 小結 180
8.7 習題 180
第9章 異常處理 181
9.1 異常的基本概念 181
9.2 異常處理結構 183
9.2.1 try-catch結構 183
9.2.2 try-catch-finally結構 184
9.2.3 try-finally結構 186
9.3 異常的捕獲和傳播 187
9.3.1 傳播過程 187
9.3.2 Exception和異常信息 188
9.3.3 異常層次結構 190
9.4 自定義異常 192
9.4.1 主動引發異常 192
9.4.2 自定義異常類型 193
9.5 使用異常的指導原則 196
9.6 案例研究——旅行社管理系統中的異常處理 197
9.6.1 檔案I/O異常處理 198
9.6.2 旅行社業務異常 199
9.7 小結 201
9.8 習題 201
第10章 基於接口的程式設計 202
10.1 接口的定義和使用 202
10.1.1 接口的定義 202
10.1.2 接口的實現 203
10.2 接口與多態 204
10.2.1 通過接口實現多態性 204
10.2.2 區分接口方法和對象方法 206
10.3 接口和多繼承 208
10.3.1 多繼承概述 208
10.3.2 基於接口的多繼承 209
10.3.3 解決二義性 213
10.4 接口與集合 216
10.4.1 集合型接口及其實現 216
10.4.2 列表、佇列和堆疊 217
10.4.3 自定義集合類型 219
10.5 案例研究——旅行社管理系統中的集合類型 221
10.5.1 職員列表與數據綁定 221
10.5.2 使用自定義集合 224
10.6 小結 229
10.7 習題 230
第11章 泛型程式設計 231
11.1 為什麼要使用泛型 231
11.2 泛型類 232
11.2.1 泛型類的定義和使用 232
11.2.2 使用“抽象型”變數 234
11.2.3 使用多個類型參數 235
11.2.4 類型參數與標識 235
11.2.5 泛型的靜態成員 237
11.3 類型限制 239
11.3.1 主要限制 239
11.3.2 次要限制 239
11.3.3 構造函式限制 240
11.4 泛型繼承 240
11.5 泛型接口 243
11.5.1 泛型接口的定義 243
11.5.2 泛型接口的實現 244
11.5.3 避免二義性 247
11.5.4 泛型接口與泛型集合 248
11.6 泛型方法 252
11.6.1 泛型方法的定義和使用 252
11.6.2 泛型方法的重載 254
11.6.3 泛型方法與委託 254
11.7 案例研究——旅行社管理系統中的泛型集合 256
11.7.1 使用泛型列表List<T> 256
11.7.2 泛型優先權佇列 258
11.8 小結 259
11.9 習題 260
第12章 C#中的泛型模式:可空類型和疊代器 261
12.1 可空類型 261
12.1.1 可空類型:值類型+null 261
12.1.2 可空類型轉換 266
12.1.3 操作符提升 266
12.2 遍歷和疊代 267
12.2.1 可遍歷類型和接口 267
12.2.2 疊代器 270
12.2.3 疊代器代碼 273
12.2.4 使用多個疊代器 274
12.2.5 自我疊代 276
12.3 案例研究——旅行社管理系統中的可空值與疊代器 279
12.3.1 旅行社業務對象中的可空值 279
12.3.2 遍歷遊客集合 280
12.4 小結 281
12.5 習題 281
第13章 WPF應用程式設計 282
13.1 WPF窗體和控制項 282
13.1.1 創建一個WPF程式 282
13.1.2 窗體和布局 284
13.1.3 控制項內容模型 286
13.1.4 文本框控制項 290
13.1.5 範圍控制項 291
13.2 使用XAML設計界面 292
13.2.1 XAML文檔和元素 292
13.2.2 元素屬性和事件 293
13.2.3 資源和樣式 295
13.3 繪製圖形 298
13.3.1 畫刷 298
13.3.2 形狀 300
13.3.3 圖形變換 303
13.3.4 列印輸出 304
13.4 動畫和多媒體 305
13.4.1 基於屬性的動畫 305
13.4.2 故事板和事件觸發器 307
13.4.3 基於路徑的動畫 309
13.4.4 播放多媒體檔案 310
13.5 案例研究——旅行社管理系統的WPF界面 312
13.5.1 構建系統主界面 312
13.5.2 新建、修改和刪除業務對象 314
13.5.3 信息列印輸出 316
13.5.4 Windows Form集成 317
13.6 小結 318
13.7 習題 318
第14章 C# Web應用程式設計 319
14.1 ASP .NET技術概述 319
14.2 ASP .NET Web窗體和基本對象 320
14.2.1 Web窗體 320
14.2.2 請求和回響 321
14.2.3 伺服器對象 324
14.2.4 應用程式、會話、視圖和快取 325
14.3 HTML控制項 327
14.3.1 從HTML元素到HTML控制項 327
14.3.2 HtmlControl類型 328
14.3.3 HtmlAnchor、HtmlTextArea和HtmlSelect控制項 329
14.3.4 HtmlTable控制項 331
14.3.5 HtmlInputControl控制項 333
14.4 Web伺服器控制項 335
14.4.1 標準窗體控制項 335
14.4.2 驗證控制項 340
14.5 案例研究——旅遊信息查詢網站 341
14.5.1 網站母版頁 341
14.5.2 網站首頁與線路瀏覽 343
14.5.3 旅行團方案頁面 346
14.5.4 景點信息頁面 347
14.6 小結 348
14.7 習題 348
第15章 對象持久性——資料庫存取和LINQ查詢 349
15.1 關係資料庫概述 349
15.1.1 關係表和對象 349
15.1.2 關係資料庫語言SQL 351
15.2 ADO .NET數據訪問模型 354
15.2.1 非連線類型 354
15.2.2 連線類型 358
15.3 LINQ對象數據查詢 362
15.4 案例研究——旅行社管理系統的資料庫解決方案 366
15.4.1 數據表格設計 366
15.4.2 資料庫連線管理 367
15.4.3 實現業務對象的資料庫存取 368
15.4.4 終端數據訪問 372
15.5 小結 374
15.6 習題 374
第16章 Silverlight客戶端應用程式 375
16.1 Silverlight套用開發基礎 375
16.2 Silverlight程式架構 376
16.3 處理鍵盤和滑鼠事件 379
16.3.1 處理鍵盤事件 379
16.3.2 處理滑鼠事件 380
16.4 模板和自定義控制項 381
16.4.1 使用控制項模板 381
16.4.2 創建自定義控制項 383
16.5 案例研究——使用必應地圖服務 386
16.5.1 開發前的準備工作 386
16.5.2 創建程式並添加必應地圖控制項 387
16.5.3 地圖、圖層與圖片系統 388
16.5.4 旅遊景點地圖導航 390
16.6 小結 394
16.7 習題 394