面向?qū)ο蟪绦蛟O(shè)計(jì)教程(C#版)
定 價:55 元
叢書名:“十三五”普通高等教育規(guī)劃教材立體化·新形態(tài)教材
- 作者:劉瑞新
- 出版時間:2018/8/1
- ISBN:9787111605614
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP312C++
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書全面細(xì)致地講授面向?qū)ο蟮母拍、方法和?yīng)用,突出面向?qū)ο蟪绦蛟O(shè)計(jì)的思想,并以C#為載體來實(shí)現(xiàn)面向?qū)ο蟮脑O(shè)計(jì)。本書按面向?qū)ο蟮脑O(shè)計(jì)方法來歸類章節(jié),分為15章,包括類和對象,封裝,繼承,多態(tài),程序的調(diào)試和異常處理,接口和多態(tài)的實(shí)現(xiàn),靜態(tài)類和密封類,值類型和引用類型,索引器,泛型,集合,Windows窗體應(yīng)用程序,文件操作,委托和事件,多線程編程。本書概念清晰,定義準(zhǔn)確,例題實(shí)用,習(xí)題豐富,是一本真正簡明易學(xué)的面向?qū)ο蟪绦蛟O(shè)計(jì)的教材。
本書可作為高等院校計(jì)算機(jī)專業(yè)及相關(guān)專業(yè)的C#面向?qū)ο蟪绦蛟O(shè)計(jì)課程的教材,同時也可作為各類面向?qū)ο蟮腃#程序設(shè)計(jì)培訓(xùn)班的教學(xué)用書。
本書配有授課用課件、重點(diǎn)難點(diǎn)的授課視頻等資源,并提供所有例題、課堂練習(xí)和習(xí)題的源代碼,可以在閱讀時掃描二維碼查看或下載,也可登錄www.cmpedu.com免費(fèi)注冊,審核通過后下載或聯(lián)系編輯索取(QQ:2966938356,電話:010-88379739)。
本書中的例題采用完全的面向?qū)ο蟪绦虼a,使讀者逐步習(xí)慣閱讀面向?qū)ο蟮拇a,形成條件反射,養(yǎng)成用面向?qū)ο蟮乃季S去分析和解決問題。
本書配有授課用課件、重點(diǎn)難點(diǎn)的授課視頻等資源,并提供所有例題、課堂練習(xí)和習(xí)題的源代碼,可以在閱讀時掃描二維碼查看或下載。
在計(jì)算機(jī)及相關(guān)專業(yè)課程中,面向?qū)ο蟪绦蛟O(shè)計(jì)課程是學(xué)生必修的核心課程。面向?qū)ο蟮某绦蛟O(shè)計(jì)思想從提出到現(xiàn)在,一直是程序開發(fā)的主流思想,是所有計(jì)算機(jī)軟件開發(fā)人員必須掌握的關(guān)鍵技術(shù)。在計(jì)算機(jī)相關(guān)專業(yè)的課程設(shè)置中,多數(shù)高校以C語言作為學(xué)生學(xué)習(xí)的第一門高級語言,由于先入為主等原因,在學(xué)生后續(xù)的C++、C#、Java等面向?qū)ο蟪绦蛟O(shè)計(jì)的課程學(xué)習(xí)中,學(xué)生建立系統(tǒng)的面向?qū)ο蟮乃枷氡容^困難。
在C#面向?qū)ο蟪绦蛟O(shè)計(jì)課程的設(shè)計(jì)過程中,我們廣泛收集教學(xué)資料,拜訪多所大學(xué),請教了多位著名老師;主要成員參加了企業(yè)的多項(xiàng)培訓(xùn)(例如北大青鳥、微軟等),在教學(xué)中也采用了多種教學(xué)方案,試圖幫助學(xué)生掌握面向?qū)ο蟮木幊。本書初稿完成后,?jīng)過3年多的教學(xué)實(shí)踐,跟蹤學(xué)生學(xué)習(xí)效果,反復(fù)調(diào)整課程內(nèi)容,經(jīng)過多次課程內(nèi)容的迭代,形成了自己獨(dú)特的課程教學(xué)方案,編寫了《面向?qū)ο蟪绦蛟O(shè)計(jì)教程(C#版)》一書。諾貝爾物理學(xué)獎得主,理查德·費(fèi)曼說:“偉大的進(jìn)展都源于承認(rèn)無知,源于思想的自由。”我們在課程內(nèi)容的取舍、教學(xué)內(nèi)容的先后順序,典型例題、習(xí)題的選取上,經(jīng)過了痛苦的選擇,如果沒有思想的自由解放,是無法實(shí)現(xiàn)目前的課程方案,達(dá)到滿意教學(xué)效果的。
我們知道,學(xué)生對每門課程最初幾次上課的印象最深,因此應(yīng)該把課程的重要內(nèi)容安排在學(xué)期的最初幾次課上來講;谶@個現(xiàn)象,本書第1章類和對象,第2章封裝,第3章繼承,第4章多態(tài),使讀者盡早掌握用類的三大特性,完成面向?qū)ο蟮谝浑A段的學(xué)習(xí)。在第一階段,讀者建立起來類和對象的概念,掌握類的三大特性,理解面向?qū)ο蟮幕舅枷,這樣之后的學(xué)習(xí)難度就降低了很多。第二階段學(xué)習(xí)第5章程序的調(diào)試和異常處理,第6章接口和多態(tài)的實(shí)現(xiàn),第7章靜態(tài)類和密封類,第8章值類型和引用類型,第9章索引器,第10章泛型,第11章集合。第三階段學(xué)習(xí)第12章Windows窗體應(yīng)用程序,第13章文件操作,第14章委托和事件,第15章多線程編程。值得一提的是,本書中的例題采用完全的面向?qū)ο蟪绦虼a,使讀者逐步習(xí)慣閱讀面向?qū)ο蟮拇a,形成條件反射,養(yǎng)成用面向?qū)ο蟮乃季S去分析和解決問題。
本課程的前導(dǎo)課程是C語言或其他高級語言。對于沒有學(xué)習(xí)過任何高級語言的讀者,學(xué)習(xí)本書也不會有障礙,因?yàn)楸緯言S多基礎(chǔ)知識分散到各個章節(jié)中,而且在程序中通過應(yīng)用來體現(xiàn),這樣更有利于理解。通過本書的學(xué)習(xí),讀者不但能學(xué)會面向?qū)ο蟪绦蛟O(shè)計(jì)的基本知識、設(shè)計(jì)思想和方法,還能很容易地過渡到其他面向?qū)ο蟪绦蛟O(shè)計(jì)語言的學(xué)習(xí)與使用上,只需了解該語言的語法,就可以非常輕松地掌握。
C#是一種簡潔、類型安全的面向?qū)ο蟮恼Z言,可用它來構(gòu)建在.NET Framework上運(yùn)行的各種安全、可靠的應(yīng)用程序,常用于開發(fā)Windows客戶端應(yīng)用程序、ASP.NET網(wǎng)站、XML Web Services、分布式組件、客戶端/服務(wù)器應(yīng)用程序、數(shù)據(jù)庫應(yīng)用程序等。C#的生成過程比C和C++簡單,比Java更靈活,C#非常適合作為第一門面向?qū)ο蟮恼Z言來學(xué)習(xí)。
本書概念清晰,定義準(zhǔn)確,例題實(shí)用,習(xí)題豐富,是一本真正簡明易學(xué)的面向?qū)ο蟪绦蛟O(shè)計(jì)的教材。在面向?qū)ο蟮乃枷胫,萬事萬物皆對象,當(dāng)掌握了面向?qū)ο蟮乃枷牒螅梢杂妹嫦驅(qū)ο蟮乃季S去看待面向?qū)ο蟮氖澜,將面向(qū)ο蟮姆椒☉?yīng)用在生活、工作中,對分析問題、解決問題都有幫助,受益終生。
本書的主要作者在高校講授面向?qū)ο蟪绦蛟O(shè)計(jì)課程十多年,參與了高校多次的教學(xué)改革,制訂過計(jì)算機(jī)相關(guān)專業(yè)的教學(xué)計(jì)劃和課程標(biāo)準(zhǔn),并參加過多項(xiàng)實(shí)際應(yīng)用項(xiàng)目的開發(fā),有著豐富的教學(xué)和實(shí)踐經(jīng)驗(yàn)。
本書配套資源豐富,方便讀者學(xué)習(xí)。對于授課視頻、例題視頻和部分源代碼,在閱讀時可以通過掃描二維碼直接查看;對于教學(xué)課件和習(xí)題解答,在閱讀時可以通過掃描二維碼獲得下載鏈接進(jìn)行下載。
本書編寫分工如下:劉瑞新編寫第1、2、12章,張治斌編寫第3、8章,朱立編寫第4、5、6章,王莉編寫第7、10章,張迎春編寫第11、13章,崔淼編寫第15章,第9、14章以及資料的收集整理、課件的制作由彭守旺、翟麗娟、劉克純、劉春芝、李建彬、劉大學(xué)、繆麗麗、劉大蓮、莊建新、彭春芳、孫洪玲、崔瑛瑛、韓建敏、莊恒、徐維維、徐云林、馬春鋒、駱秋容、王如雪、曹媚珠、陳文煥、劉有榮、李剛、孫明建、李索、彭澤源完成。本書由劉瑞新教授策劃、統(tǒng)稿。編寫過程中得到了許多教師的大力支持,他們提出許多寶貴意見使本書更加適合教學(xué),在此一并感謝。
在編寫本書的過程中,編者翻閱了大量的資料,限于篇幅不再一一列出,在此表示衷心感謝。
由于計(jì)算機(jī)技術(shù)發(fā)展迅速,書中難免有不足和疏漏之處,懇請廣大讀者批評指正。
目 錄
前言
第1章 類和對象1
1.1 面向?qū)ο蟮母拍?
1.1.1 對象抽象成類1
1.1.2 由類創(chuàng)建對象3
1.1.3 對象之間的通信4
1.1.4 面向?qū)ο箝_發(fā)的特點(diǎn)4
1.2 定義類、創(chuàng)建對象4
1.2.1 定義類4
1.2.2 類的成員4
1.2.3 成員變量8
1.3 創(chuàng)建對象9
1.3.1 對象的聲明與實(shí)例化9
1.3.2 對象成員的訪問10
1.3.3 類和對象應(yīng)用示例10
1.4 命名空間12
1.4.1 命名空間概述12
1.4.2 命名空間的聲明12
1.4.3 導(dǎo)入其他命名空間14
1.4.4 命名空間的嵌套14
1.5 習(xí)題15
第2章 封裝16
2.1 封裝的概念16
2.2 類的屬性18
2.2.1 屬性的聲明18
2.2.2 屬性的訪問21
2.3 方法重載21
2.4 構(gòu)造函數(shù)24
2.4.1 構(gòu)造函數(shù)的概念24
2.4.2 構(gòu)造函數(shù)的定義25
2.4.3 構(gòu)造函數(shù)的分類26
2.4.4 調(diào)用構(gòu)造函數(shù)26
2.4.5 構(gòu)造函數(shù)的重載28
2.5 習(xí)題30
第3章 繼承32
3.1 繼承的概念32
3.2 派生類及其特性33
3.2.1 聲明派生類33
3.2.2 繼承的特性36
3.3 繼承與訪問修飾符38
3.4 繼承與構(gòu)造函數(shù)39
3.5 里氏替換原則44
3.5.1 里氏替換原則概述44
3.5.2 派生類對象能夠替換基類對象44
3.5.3 類的引用45
3.5.4 隱藏基類中的成員47
3.6 習(xí)題47
第4章 多態(tài)49
4.1 多態(tài)的概念49
4.2 使用重寫和虛方法實(shí)現(xiàn)多態(tài)50
4.2.1 重寫的概念50
4.2.2 在派生類中使用new關(guān)鍵字實(shí)現(xiàn)覆蓋性重寫50
4.2.3 使用虛方法實(shí)現(xiàn)多態(tài)性重寫52
4.3 使用抽象類和抽象方法實(shí)現(xiàn)多態(tài)56
4.3.1 抽象類的概念56
4.3.2 抽象類和抽象方法的定義57
4.3.3 重載抽象方法58
4.3.4 理解多態(tài)58
4.4 對象類型的轉(zhuǎn)換與判斷61
4.4.1 向上轉(zhuǎn)換類型(隱式轉(zhuǎn)換類型)61
4.4.2 向下轉(zhuǎn)換類型(強(qiáng)制轉(zhuǎn)換類型)63
4.4.3 使用as和is運(yùn)算符66
4.5 習(xí)題68
第5章 程序的調(diào)試和異常處理70
5.1 程序的調(diào)試70
5.1.1 調(diào)試工具70
5.1.2 設(shè)置斷點(diǎn)71
5.1.3 調(diào)試的過程72
5.2 錯誤與異常概述75
5.2.1 錯誤與異常的區(qū)別76
5.2.2 異常處理77
5.3 C#中的異常處理79
5.3.1 使用try…catch處理異常79
5.3.2 使用try…catch…finally處理異常82
5.3.3 異常處理的指導(dǎo)原則和特點(diǎn)87
5.3.4 使用throw拋出異常87
5.4 習(xí)題88
第6章 接口和多態(tài)的實(shí)現(xiàn)92
6.1 接口概述92
6.1.1 接口的概念92
6.1.2 接口的聲明92
6.1.3 接口的實(shí)現(xiàn)95
6.1.4 接口成員的實(shí)現(xiàn)96
6.1.5 接口映射98
6.1.6 重新實(shí)現(xiàn)接口99
6.1.7 接口的本質(zhì)100
6.2 多態(tài)的實(shí)現(xiàn)101
6.2.1 抽象類與普通類的對比101
6.2.2 抽象類與接口的對比101
6.2.3 抽象類和接口的使用場合102
6.2.4 使用抽象類和接口實(shí)現(xiàn)多態(tài)103
6.3 習(xí)題106
第7章 靜態(tài)類和密封類108
7.1 靜態(tài)成員108
7.1.1 靜態(tài)成員概述108
7.1.2 靜態(tài)字段108
7.1.3 靜態(tài)方法111
7.1.4 靜態(tài)成員總結(jié)112
7.1.5 靜態(tài)方法與實(shí)例方法的區(qū)別112
7.2 String類的常用方法113
7.2.1 String類的常用靜態(tài)方法113
7.2.2 String類的常用實(shí)例方法116
7.3 靜態(tài)類118
7.3.1 靜態(tài)類的定義118
7.3.2 訪問靜態(tài)類的成員119
7.3.3 靜態(tài)構(gòu)造函數(shù)120
7.4 密封類和密封方法122
7.4.1 密封類的定義122
7.4.2 密封方法123
7.5 習(xí)題124
第8章 值類型和引用類型126
8.1 值類型和引用類型簡介126
8.1.1 ?臻g和堆空間126
8.1.2 值類型和引用類型的定義127
8.2 方法的參數(shù)類型131
8.2.1 C#中方法的參數(shù)132
8.2.2 值參數(shù)132
8.2.3 引用參數(shù)133
8.2.4 輸出參數(shù)134
8.2.5 數(shù)目可變參數(shù)135
8.2.6 可選參數(shù)136
8.2.7 命名參數(shù)137
8.2.8 方法解析138
8.3 值類型和引用類型的應(yīng)用138
8.3.1 值類型參數(shù)按值方式傳遞138
8.3.2 值類型參數(shù)按引用方式傳遞139
8.3.3 引用類型參數(shù)按值方式傳遞139
8.3.4 引用類型參數(shù)按引用方式傳遞140
8.4 相等判斷141
8.4.1 靜態(tài)ReferenceEquals()方法141
8.4.2 = =運(yùn)算符142
8.4.3 實(shí)例Equals()方法142
8.4.4 靜態(tài)Equals()方法144
8.4.5 三種比較方法的異同144
8.5 字符串的存儲原理145
8.6 常量、枚舉和結(jié)構(gòu)148
8.6.1 常量148
8.6.2 枚舉類型151
8.6.3 結(jié)構(gòu)類型153
8.7 裝箱和拆箱155
8.8 習(xí)題156
第9章 索引器159
9.1 索引器的概念159
9.2 定義索引器159
9.3 索引器的使用161
9.4 使用其他非整數(shù)的索引類型162
9.5 索引器與屬性的比較164
9.6 接口中的索引器165
9.7 習(xí)題168
第10章 泛型170
10.1 泛型的概念170
10.2 泛型類171
10.2.1 定義泛型類171
10.2.2 泛型類對象的創(chuàng)建172
10.2.3 泛型類的應(yīng)用173
10.3 泛型類中數(shù)據(jù)類型的約束173
10.3.1 泛型類約束的概念173
10.3.2 使用where約束類型174
10.3.3 where約束的應(yīng)用179
10.4 泛型類的靜態(tài)成員181
10.5 泛型類的繼承182
10.6 泛型方法185
10.6.1 泛型方法的聲明185
10.6.2 調(diào)用泛型方法192
10.6.3 泛型方法的應(yīng)用193
10.7 泛型參數(shù)的轉(zhuǎn)換195
10.8 泛型接口196
10.9 習(xí)題197
第11章 集合199
11.1 集合的概念199
11.2 Ar