OOP知識(shí)點(diǎn)總結(jié)_第1頁(yè)
OOP知識(shí)點(diǎn)總結(jié)_第2頁(yè)
OOP知識(shí)點(diǎn)總結(jié)_第3頁(yè)
OOP知識(shí)點(diǎn)總結(jié)_第4頁(yè)
OOP知識(shí)點(diǎn)總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第一章:理解.NET Framework 與 C#1. 什么是.NET?一種面向網(wǎng)絡(luò)、支持各種用戶終端的開發(fā)平臺(tái)環(huán)境,.NET 的戰(zhàn)略目標(biāo)是在任何地方 (Anywhere、任何時(shí)間(Anytime、任何設(shè)備(Any device都可以通過.NET的服務(wù)獲得網(wǎng)絡(luò)上 的任何信息,享受網(wǎng)絡(luò)帶給人們的便捷和快樂。2. 什么是.NET Framework?創(chuàng)建、部署和運(yùn)行.NET應(yīng)用的環(huán)境。由 CLR 和 FCL組成。3. CLR(公共語(yǔ)言運(yùn)行時(shí)提供.NET 程序的運(yùn)行環(huán)境,并管理著代碼的執(zhí)行。它是 C#和其他支持.NET 平臺(tái)的開發(fā) 工具的運(yùn)行基礎(chǔ),它如同一個(gè)支持.NET 應(yīng)用程序運(yùn)行和開發(fā)的虛擬機(jī)。

2、由 CLS 和 CTS 組 成。功能與作用:1. 跨語(yǔ)言集成能力2. 跨語(yǔ)言異常處理3. 內(nèi)存管理自動(dòng)化4. CLS(公共語(yǔ)言規(guī)范CLS 是一種最低的語(yǔ)言標(biāo)準(zhǔn),定制了一種以.NET 平臺(tái)為目標(biāo)的語(yǔ)言所必須支持的最小特 征,以及該語(yǔ)言與其他語(yǔ)言之間實(shí)現(xiàn)互操作性所需要的完備特征。 凡是符合這個(gè)標(biāo)準(zhǔn)的語(yǔ)言 在.NET框架下都可以實(shí)現(xiàn)互相調(diào)用。5. CTS(通用類型系統(tǒng)為了實(shí)現(xiàn)語(yǔ)言的互操作性,必須提供一種各種語(yǔ)言都認(rèn)可的基本數(shù)據(jù)類型,這樣才能對(duì)所 有語(yǔ)言進(jìn)行標(biāo)準(zhǔn)化的處理,CTS 提供了這個(gè)功能,還提供了定義定制類的規(guī)則。6. MSIL(微軟中間語(yǔ)言為了實(shí)現(xiàn)跨語(yǔ)言和跨平臺(tái)的目標(biāo),.NET所有編寫的應(yīng)用不

3、是編譯為本地代碼,而是編譯成 MSIL,它將有 JIT編譯器轉(zhuǎn)換成機(jī)器代碼而最終執(zhí)行。MSIL遵循通用的語(yǔ)法,各種語(yǔ)言編 寫的代碼在這里可相互調(diào)用。類似JA V A的字節(jié)碼7. JIT(即時(shí)編譯器將 MSIL 編譯成本地平臺(tái)的可執(zhí)行代碼。為什么需要 JIT,原因在于效率。你很少用到程 序的所有功能,這種邊執(zhí)行邊編譯比一次性完全編譯效率高得多。8. .NET程序編譯過程1. 由各種語(yǔ)言的編譯器將源代碼編譯成 MSIL(第一次編譯2. 由JIT將 MSIL編譯成本地平臺(tái)的可執(zhí)行代碼(第二次編譯9. C#特點(diǎn)1. 簡(jiǎn)潔的語(yǔ)法2. 完全面向?qū)ο笤O(shè)計(jì)3. 支持泛型4. 與WEB 的緊密結(jié)合5. 完整的安

4、全性和版本處理6. 強(qiáng)大的類庫(kù)支持10. 命名空間1. 作用:1. 區(qū)分同名的類,避免了命名沖突2. 組織功能相關(guān)的類2. 注意:命名空間中可定義子命名空間,還可在導(dǎo)入時(shí)取別名,如:using Model=MySchool.Model第二章:用對(duì)象思考:屬性和方法1. 什么是對(duì)象和類對(duì)象:一切具有可描述的特征和行為的實(shí)體類:具有相同特征和行為的對(duì)象的集合2. 類和對(duì)象的關(guān)系類是對(duì)象的模型,對(duì)象是類的實(shí)例3. 字段和屬性字段:記錄類所要描述的數(shù)據(jù)屬性:對(duì)字段的一種封裝,提高字段取值和賦值的安全性、有效性和靈活性。分類:只讀屬性:get 只寫屬性:set 永遠(yuǎn)不要定義只寫屬讀寫屬性:get 、se

5、t 4. 封裝:概念:隱藏具體實(shí)現(xiàn)的一種做法。如屬性隱藏了對(duì)字段的取值和賦值詳細(xì)過程好處:提高數(shù)據(jù)的安全性和有效性5. 方法:1. 傳參方式1. 傳值:如 public void Fun(int i 2. 傳引用:如public void Fun(ref int ipublic void Fun(out int i3. ref與 out 傳參的區(qū)別1. ref參數(shù)傳參時(shí)必須初始化,out 則不需要2. out 參數(shù)必須在方法內(nèi)得到賦值后才能進(jìn)行任何的運(yùn)算,ref則沒有該限制3. ref側(cè)重修改,out 側(cè)重輸出2. 方法重載概念:同一個(gè)類中方法名相同,參數(shù)列表不同的多個(gè)方法叫重載方法調(diào)用時(shí)將由

6、參數(shù)類型決定調(diào)用哪個(gè)重載方法3. 靜態(tài)方法(成員與實(shí)例方法(成員概念:凡是帶有 static 關(guān)鍵字的成員稱為靜態(tài)成員或類成員,同類中的所有對(duì)象共享 靜態(tài)成員的值;凡是沒有 static關(guān)鍵字的成員稱為實(shí)例成員,同類中的每個(gè)對(duì)象的實(shí)例成員取值相互獨(dú)立,即有自己特有的值。區(qū)別:1. 靜態(tài)成員只能通過類名調(diào)用,實(shí)例成員只能通過對(duì)象調(diào)用2. 靜態(tài)方法只能訪問其他靜態(tài)成員,實(shí)例方法可訪問任何成員3. 靜態(tài)方法中不能使用 this 關(guān)鍵字,實(shí)例方法可以4. 靜態(tài)成員在調(diào)用前初始化,實(shí)例成員在實(shí)例化對(duì)象時(shí)初始化4. 構(gòu)造方法:概念:與類同名且沒有返回值的方法作用:初始化類的成員屬性分類:1. 隱式構(gòu)造方法

7、:如果類中沒有定義任何的構(gòu)造方法,則編譯器會(huì)自動(dòng)給類提供一個(gè)無(wú)參的構(gòu)造方法,稱為隱式構(gòu)造方法2. 顯示構(gòu)造方法:1. 默認(rèn)(無(wú)參構(gòu)造方法:沒有參數(shù)的構(gòu)造方法2. 有參構(gòu)造方法調(diào)用:只能通過 new關(guān)鍵字調(diào)用,不能通過其他方式顯示調(diào)用構(gòu)造方法5. this(關(guān)鍵字:代表當(dāng)前對(duì)象6. 命名規(guī)范:1. Camel 命名法:第一個(gè)單詞的每個(gè)字母小寫,后面的每個(gè)單詞首字母大寫。如:helloWorld變量名、字段名 采用2. Pascal 命名法:每個(gè)單詞的首先字母都大寫。如:HelloWorld類名、方法名、屬性名等 采用重要通告:不規(guī)范的代碼就是垃圾第三章:用對(duì)象思考:值類型和引用類型1. 常量(c

8、onst:不能被改變的變量語(yǔ)法:public const double PI=3.14159特點(diǎn):1. 常量在聲明時(shí)必須初始化,且在程序的其他的地方只能讀取不能修改2. 常量默認(rèn)為 static,不允許顯示使用 static 修飾符2. readonly關(guān)鍵字:用來(lái)聲明只讀字段(類似常量語(yǔ)法:public readonly static string SchoolName=”北大青鳥”特點(diǎn):1. 只能在聲明時(shí)或構(gòu)造方法中給 readonly字段賦值3. 枚舉(enum概念:枚舉是一組可選值的羅列,或一組整數(shù)值的友好表示方式語(yǔ)法:public enum Genders 男=1,女=2 特點(diǎn):1.

9、 每個(gè)枚舉值都有一個(gè)整型值表示,默認(rèn)從 0 開始枚舉與字符串的轉(zhuǎn)換:stu.Gender.ToString( /轉(zhuǎn)換成字符串stu.Gender = (Genders(Enum.Parse(typeof(Genders,"男" /字符串轉(zhuǎn)換成枚舉 int g = (intstu.Gender /轉(zhuǎn)換成整數(shù)值4. 結(jié)構(gòu)(struct:類似類但不是類與類的異同:1. 類是引用類型,結(jié)構(gòu)是值類型(異2. 類可以被繼承,結(jié)構(gòu)不能被繼承(異3. 類可以有默認(rèn)的構(gòu)造方法,結(jié)構(gòu)不能有默認(rèn)構(gòu)造方法(異4. 類創(chuàng)建對(duì)象必須用 new,結(jié)構(gòu)可不用 new(異5. 類中可為字段賦值,結(jié)構(gòu)不能為字

10、段賦值(異6. 類和結(jié)構(gòu)都可包含字段、方法、索引器等成員(同7. 都可以實(shí)現(xiàn)接口(同5. 值類型和引用類型區(qū)別:1. 兩種變量在內(nèi)存中的存儲(chǔ)方式不同:值類型的值存儲(chǔ)在棧中,引用類型的值保存在堆中,棧中只保存對(duì)象的地址2. 值類型變量的傳參傳遞的是值的副本3. 引用類型變量的傳參傳遞的是地址的副本4. 在方法中不能改變值類型變量實(shí)參的值,但可以改變引用類型變量的值5. 值類型和引用類型變量的優(yōu)缺點(diǎn)值類型:速度快,占空間引用類型:速度慢,節(jié)約空間類型劃分1. 值類型:所有基本數(shù)據(jù)類型、enum、struct2. 引用類型:類、接口、數(shù)組6. 裝箱和拆箱概念:值類型到引用類型的轉(zhuǎn)換稱為裝箱,反之稱為

11、拆箱注意:1. 裝箱和拆箱時(shí)類型必須兼容,否則會(huì)有異常2. 裝箱和拆箱的過程需要經(jīng)過一系列的運(yùn)算處理,效率很低。裝箱所需時(shí)間可比賦值操作長(zhǎng) 20 倍。取消裝箱時(shí),強(qiáng)制轉(zhuǎn)換過程所需時(shí)間可達(dá)賦值操作的4 倍 裝箱的過程1. 在內(nèi)存中分配一個(gè)對(duì)象實(shí)例2. 將值變量的值復(fù)制到該實(shí)例中拆箱的過程1. 先檢查對(duì)象實(shí)例是否為指定基本數(shù)據(jù)類型的裝箱值2. 將值復(fù)制出來(lái)賦值給基本數(shù)據(jù)類型變量7. 索引器作用:簡(jiǎn)化對(duì)象訪問數(shù)組的方式1. myClass.Students0.Name /直接訪問數(shù)組的形式2. myClass0.Name 或 myClass“阿牛”.Age /通過索引器訪問數(shù)組的形式特點(diǎn):1. 索引

12、器可通過下標(biāo)和關(guān)鍵字來(lái)訪問數(shù)組的元素(重載,數(shù)組則只能通過下標(biāo)訪問2. 一個(gè)類中只能針對(duì)一個(gè)數(shù)組定義索引器語(yǔ)法:1. public Student thisint index get set /下標(biāo)索引器2. public Student thisstring name get /關(guān)鍵字索引器第四章:用集合組織相關(guān)數(shù)據(jù)1. 數(shù)組的特點(diǎn)1. 只能保存同一種類型的數(shù)據(jù)2. 能存放的元素的個(gè)數(shù)在定義時(shí)就固定了2. ArrayList 特點(diǎn)1.ArrayList 的長(zhǎng)度是可變的2. 同一個(gè) ArrayList 中可以添加多種數(shù)據(jù)類型的數(shù)據(jù)對(duì)象3. 可以隨意的對(duì)集合中的數(shù)據(jù)進(jìn)行增加和刪除操作4. 訪問的

13、方式和數(shù)組一樣,采用下標(biāo)訪問某個(gè)元素3.ArrayList 常用方法1. Add(:添加元素(object2. Remove(:刪除某元素3. RemoveAt(:刪除指定下標(biāo)的元素4. Contains(:判斷集合中是否包含某元素5. Clear(:清空集合元素6. Insert(:插入元素4. HashTable1. 元素以鍵值(key/value對(duì)形式保存。如:hashTable.Add(“阿?!?new Student(“阿?!?232. 取值時(shí)應(yīng)根據(jù)鍵(key取值(value。如:Object obj = hashTable“阿?!?. 常用屬性和方法:1. Keys:集合中鍵的集合

14、2. V alues:集合中值的集合3. Count:集合與元素的個(gè)數(shù)4. ContainsKey(:判斷是否包含特點(diǎn)的鍵值5. ContainsV alue(:判斷是否包含特點(diǎn)的值5. 泛型集合 List 與 Dictionary1. 使用泛型類型可以最大限度地重用代碼、保護(hù)類型的安全以及提高性能2. 泛型最常見的用途是創(chuàng)建集合類3. 泛型集合約束了保存數(shù)據(jù)的類型4. 泛型集合在添加和讀取元素時(shí)無(wú)須裝箱和拆箱第五章 文件讀寫與 XML1. 相關(guān)類介紹1. FileStream:文件流對(duì)象2. StreamReader:文件讀取器對(duì)象,利用它讀取文件3. StreamWriter:文件寫入器,

15、利用它寫入文件4. File:文件類,包含一系列靜態(tài)方法,用于對(duì)文件進(jìn)行操作(Copy、Move、Delete 等5. Directory:文件夾類,用于對(duì)文件夾進(jìn)行操作(Copy、Move、Delete 等6. FileInfo:文件信息類,封裝了文件本身的詳細(xì)信息(文件名、創(chuàng)建時(shí)間、大小等7. DirectoryInfo:文件夾信息類,封裝了文件夾本身的詳細(xì)信息(文件名、創(chuàng)建時(shí)間 等 2. 靜態(tài)類的特點(diǎn)1. 靜態(tài)類只能包含靜態(tài)成員2. 靜態(tài)類都是密封的,不能被繼承3. 不能實(shí)例化對(duì)象3. XML(可擴(kuò)展標(biāo)記文件的特點(diǎn)1. 第一行永遠(yuǎn)是XML文件的聲明語(yǔ)句2. 必須有且只能有一個(gè)根節(jié)點(diǎn)3.

16、元素名區(qū)分大小寫4. 必須同時(shí)具有開始和結(jié)束標(biāo)記且名稱一定要相同5. 屬性值必須用單引號(hào)或雙引號(hào)引起來(lái)6. 作用是描述數(shù)據(jù)第六章 用對(duì)象思考:繼承 1. 繼承 1. 概念:繼承后,子類將具有父類所有的屬性和方法(除了構(gòu)造方法 2. 作用:提高代碼的重用性 3.sealed(密封類不能被繼承 4. 繼承具有傳遞性和單一性 5. 所有類都默認(rèn)繼承自O(shè)bject類 2. 訪問修飾符對(duì)繼承的影響 1.子類不能訪問父類的private 成員 2.protected 修飾的成員只能在自身及子類中被訪問到 3.base 關(guān)鍵字的用法 1. 調(diào)用父類的構(gòu)造方法: publicStudent(stringnam

17、e,intage:base(name 2. 調(diào)用父類的屬性和方法 base.Name 或 base.SayHi( 4. 定義子類構(gòu)造方法的注意事項(xiàng) 1. 用base 關(guān)鍵字顯示調(diào)用父類的構(gòu)造方法 2. 隱式調(diào)用父類默認(rèn)的構(gòu)造方法 第七章 用對(duì)象思考:多態(tài) 1. 里氏替換原則 1. 核心思想: 1. 子類可當(dāng)作父類看,父類的引用可指向子類的對(duì)象 2. 凡是父類能出現(xiàn)的地方子類都可出現(xiàn) 2. 運(yùn)算符:is 和 as 1.is:判斷類型:if(pisStudent 2.as:類型轉(zhuǎn)換:(pasStudent.SayHi( 等同于 (Studentp.SayHi( 2. 抽象類和抽象方法(abstra

18、ct 1. 抽象方法: 1. 當(dāng)類中的某方法無(wú)法給出具體實(shí)現(xiàn)時(shí),可定義成抽象方法.抽象方法必須在子類中 實(shí)現(xiàn) 2. 抽象方法不能有方法體 3. 重寫抽象方法的關(guān)鍵字:override 2. 抽象類 1. 帶 abstract關(guān)鍵字的類為抽象類 2. 有抽象方法的類一定要定義成抽象類 3. 抽象類既可包含抽象方法也可包含非抽象方法 4. 抽象類不能直接實(shí)例化(new對(duì)象 5. 使用時(shí)可用抽象類的引用指向?qū)崿F(xiàn)子類的對(duì)象 6. 密封類(sealed和靜態(tài)類(static不能定義成抽象類 3. 虛方法特點(diǎn) 1. 定義的關(guān)鍵字:virtual 2. 必須有默認(rèn)實(shí)現(xiàn)(方法體 3. 子類可重寫虛方法也可不重

19、寫虛方法 4. 多態(tài) 1. 定義:不同的對(duì)象對(duì)于相同的命令(方法做出不同的反應(yīng)(實(shí)現(xiàn)效果 2. 表現(xiàn)形式:方法重載和方法重寫 5. 簡(jiǎn)單工廠設(shè)計(jì)模式 1. 定義:專門定義一個(gè)類來(lái)創(chuàng)建其他類的實(shí)例,被創(chuàng)建的實(shí)例通常具有共同的父類或接 口.簡(jiǎn)單工廠模式有被稱為靜態(tài)工廠方法模式. 2. 作用:提供一個(gè)類,有它根據(jù)一定的條件創(chuàng)建某一具體類的實(shí)例.將客戶有直接new 對(duì)象變成通過類來(lái)創(chuàng)建對(duì)象. 3. 組成(參與者: 1. 工廠(角色:是簡(jiǎn)單工廠模式的核心,它負(fù)責(zé)創(chuàng)建所有具體產(chǎn)品的實(shí)例.工廠可被 客戶直接調(diào)用,創(chuàng)建所需的產(chǎn)品對(duì)象 2. 抽象產(chǎn)品角色:是具體產(chǎn)品的父類,它負(fù)責(zé)描述所有實(shí)例共有的公共特征和行為

20、. 3. 具體產(chǎn)品:繼承自抽象產(chǎn)品,一般有多個(gè),是簡(jiǎn)單工廠模式的創(chuàng)建目標(biāo). 4. 優(yōu)點(diǎn): 1. 簡(jiǎn)單工廠模式能夠根據(jù)外界給定的信息,決定究竟應(yīng)該創(chuàng)建哪個(gè)具體類的對(duì)象.通 過它,客戶無(wú)須直接創(chuàng)建具體產(chǎn)品對(duì)象 2. 外界與具體類隔離開來(lái),偶合性低 三層:抽象工廠設(shè)計(jì)模式 1. 模式 在某特定環(huán)境下解決某類問題的通用方式方法 2. 簡(jiǎn)單工廠特點(diǎn) 1. 將具體對(duì)象的創(chuàng)建工作交給工廠,無(wú)需直接new 對(duì)象 2. 程序與具體類分離,降低耦合性 3. 生產(chǎn)的是同類產(chǎn)品,即擁有共同的父類 4. 增加新的子類產(chǎn)品時(shí),需要修改工廠類 3. 抽象工廠特點(diǎn) 1. 通過抽象類或接口隱藏了具體類的創(chuàng)建 2. 提供一系列相互依賴或相關(guān)對(duì)象的創(chuàng)建 3. 有利于更換產(chǎn)品系列 4. 難以擴(kuò)展新種類產(chǎn)品,這需要更改抽象工廠及其所有相關(guān)的子類 5. 適用于一系列產(chǎn)品相互關(guān)連,依賴一起使用的情形 4. 抽象工廠組成及個(gè)對(duì)象的職責(zé) 1. 抽象工廠類 生產(chǎn)抽象產(chǎn)品 2. 具體工廠 執(zhí)行抽象產(chǎn)品方法,生產(chǎn)具體產(chǎn)品 3. 抽象產(chǎn)品 一系列產(chǎn)品中某產(chǎn)品的接口 4. 具體產(chǎn)品 實(shí)現(xiàn)抽象產(chǎn)品的具體產(chǎn)品,完成抽象產(chǎn)品的功能 5. 客戶端 使用抽象產(chǎn)品和抽象工廠生產(chǎn)的對(duì)象 5. 使用抽象工廠后各層的依賴關(guān)系 1.DAL:IDAL 2.Factory:IDAL,DAL,Models 3.BLL:Factory,Mod

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論