面向?qū)ο蠡靖拍罾斫鈅第1頁(yè)
面向?qū)ο蠡靖拍罾斫鈅第2頁(yè)
面向?qū)ο蠡靖拍罾斫鈅第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

面向?qū)ο蠡靖拍罾斫饣靖拍钜弧?類與實(shí)例1對(duì)象是一個(gè)自包含的實(shí)體,用一組可識(shí)別的特性和行為來(lái)標(biāo)識(shí)。2類就是具有相同的屬性和功能的對(duì)象的抽象的集合a) Class是表示定義類的關(guān)鍵字,b) 注意:類名稱首字母記著要大寫。多個(gè)單詞則各個(gè)首字母大寫;第二對(duì)外公開的方法需要用“public”修飾符3實(shí)例,就是一個(gè)真實(shí)的對(duì)象。實(shí)例化就是創(chuàng)建對(duì)象的過(guò)程,使用new關(guān)鍵字來(lái)創(chuàng)建。二、 構(gòu)造方法4構(gòu)造方法,又叫構(gòu)造函數(shù),其實(shí)就是對(duì)類進(jìn)行初始化。構(gòu)造方法與類同名,無(wú)返回值,也不需要void,在new時(shí)候調(diào)用。5所有的類都有構(gòu)造方法,如果你不編碼則系統(tǒng)默認(rèn)生成空的構(gòu)造方法,若你有定義的構(gòu)造方法,那么默認(rèn)的構(gòu)造方法就會(huì)失效了。三、 方法重載6方法重載提供了創(chuàng)建同名的多個(gè)方法的能力,但這些方法需使用不同的參數(shù)類型。7注意并不只是構(gòu)造方法可以重載,普通方法也是可以重載的8方法重載時(shí),兩個(gè)方法必須要方法名相同,但參數(shù)類型或個(gè)數(shù)必須要有所不同,方法重載提供了函數(shù)可擴(kuò)展的能力。四、 屬性與修飾符9屬性是一個(gè)方法或一對(duì)方法,但在調(diào)用它的代碼開來(lái),他是一個(gè)字段,即屬性適合于以字段的方式使用方法調(diào)用的場(chǎng)合。10字段是存儲(chǔ)類要滿足其設(shè)計(jì)所需要的數(shù)據(jù),字段是與類相關(guān)的變量11屬性有兩個(gè)方法get和set。五、 封裝12每個(gè)對(duì)象都包含它能進(jìn)行操作所需要的所有信息,這個(gè)特性稱為封裝,因此對(duì)象不必依賴其他對(duì)象來(lái)完成自己的操作。13封裝的好處:3)良好的封裝能夠減少耦合b)類內(nèi)部的實(shí)現(xiàn)可以自由地修改c)類具有清晰的對(duì)外接口六、 繼承14對(duì)象的繼承代表了一種‘is-a’的關(guān)系,如果兩個(gè)對(duì)象A和B,可以描述為‘B是A’,則表明B可以繼承A。15繼承者還可以理解為是對(duì)被繼承者的特殊化,因?yàn)樗司邆浔焕^承者的特征外,還具備自己獨(dú)有的個(gè)性。16繼承定義了類如何相互關(guān)聯(lián),共享特性。繼承的工作方式是,定義父類和子類,或叫做基類和派生類,其中子類繼承父類的所有特征。子類不但繼承了父類的所有特征,還可以定義新的特性。17記?。旱谝唬宇悡碛懈割惙莗rivate的屬性和功能;第二,子類具有自己的屬性和功能,即子類可以擴(kuò)展父類沒(méi)有的屬性和功能;第三,子類還可以以自己的方式實(shí)現(xiàn)父類的功能(方法重寫)。18子類從他的父類中繼承的成員有方法、域、屬性、事件、索引指示器,但對(duì)于構(gòu)造方法,他不能被繼承,只能被調(diào)用。對(duì)于調(diào)用父類的成員,可以用base關(guān)鍵字。19不用繼承的話,如果要修改功能,就必須在所有重復(fù)的方法中修改,代碼越多,出錯(cuò)的可能就越大,而繼承的優(yōu)點(diǎn)是,繼承使得所有的子類公共的部分都放在了父類,使得代碼得到了共享,這就避免了重復(fù),另外,繼承可使得修改或擴(kuò)展繼承而來(lái)的實(shí)現(xiàn)都較為容易20繼承是有缺點(diǎn)的,那就是父類變,則子類不得不變。繼承會(huì)破壞包裝,父類實(shí)現(xiàn)細(xì)節(jié)暴漏給子類,這其實(shí)是增大類兩個(gè)類之間的耦合性。繼承顯然是一種類與類之間強(qiáng)耦合的關(guān)系21當(dāng)兩個(gè)類之間具備‘is-a’的關(guān)系時(shí),就可以考慮用繼承。因?yàn)檫@表示一個(gè)類是另一個(gè)類的特殊種類,而當(dāng)兩個(gè)類之間是‘has-a’的關(guān)系時(shí),表示某個(gè)角色具有某一項(xiàng)責(zé)任,此時(shí)不適合用繼承。七、 多態(tài)22多態(tài)表示不同的對(duì)象可以執(zhí)行相同的動(dòng)作,但要通過(guò)他們自己的實(shí)現(xiàn)代碼來(lái)執(zhí)行23注意:第一,子類以父類的身份出現(xiàn);第二,子類在工作時(shí)以自己的方式來(lái)實(shí)現(xiàn);第三,子類以父類的身份出現(xiàn)時(shí),子類特有的屬性和方法不可以使用.24為了使子類的實(shí)例完全接替來(lái)自父類的成員,父類必須將該成員聲明為虛擬的,通過(guò)加virtual關(guān)鍵字來(lái)實(shí)現(xiàn)的。子類可以選擇使用override關(guān)鍵字,將父類實(shí)現(xiàn)替換為他自己的實(shí)現(xiàn),這就是方法重寫override,或者叫做覆寫。25不同的對(duì)象可以執(zhí)行相同的動(dòng)作,但要通過(guò)他們自己的實(shí)現(xiàn)代碼來(lái)執(zhí)行。26多臺(tái)的原理是當(dāng)方法被調(diào)用時(shí),無(wú)論對(duì)象是否被轉(zhuǎn)換為其父類,都只有位于對(duì)象繼承鏈最末端的方法實(shí)現(xiàn)會(huì)被調(diào)用。也就是說(shuō),虛方法是按照其運(yùn)行時(shí)類型而非編譯時(shí)類型進(jìn)行動(dòng)態(tài)綁定調(diào)用的。例如:動(dòng)物animal=new貓();八、 重構(gòu)27也就是使用virtual和override關(guān)鍵字九、 抽象類28C#允許把類和方法聲明為abstract,即抽象類和抽象方法。29注意:第一,抽象類不能被實(shí)力化。第二,抽象方法是必須被子類重寫的方法;第三:如果類中包含抽象方法,那么類就必須定義為抽象類,不論是否包含其他的一般方法。30考慮讓抽象類擁有盡可能多的共同代碼,擁有盡可能少的數(shù)據(jù)。31使用:抽象類通常代表一個(gè)抽象概念,它提供一個(gè)繼承的出發(fā)點(diǎn),當(dāng)設(shè)計(jì)一個(gè)新的抽象類時(shí),一定是用來(lái)繼承的,所以,在一個(gè)以繼承關(guān)系形成的等級(jí)結(jié)構(gòu)里面,樹葉節(jié)點(diǎn)應(yīng)當(dāng)是具體類,而樹枝節(jié)點(diǎn)均應(yīng)當(dāng)是抽象類。十、接口32Interface,接口是把隱式公共方法和屬性組合起來(lái),以封裝特定功能的集合。一旦類實(shí)現(xiàn)了接口,類就可以支持接口所指定的所有屬性和成員。聲明接口在語(yǔ)法上與聲明抽象類完全相同,但不允許提供接口中任何成員的執(zhí)行方式。33實(shí)現(xiàn)接口的類就必須要實(shí)現(xiàn)接口中的所有方法和屬性。34一個(gè)類可以支持多個(gè)接口,多個(gè)類也可以支持相同的接口。35接口的命名:前面要加一個(gè)大寫的字母“I”。36注意:接口用interface聲明,而不是class,接口名稱要加“I”,接口中的方法或?qū)傩郧懊娌荒苡行揎椃?,方法沒(méi)有方法體。十一、抽象類與接口的區(qū)別37從表象上來(lái)說(shuō),抽象類可以給出一些成員的實(shí)現(xiàn),接口卻不包含成員的實(shí)現(xiàn),抽象類的抽象成員可以被子類部分實(shí)現(xiàn),接口成員需要實(shí)現(xiàn)類完全實(shí)現(xiàn),一個(gè)類只能繼承一個(gè)抽象類,但是可以實(shí)現(xiàn)對(duì)個(gè)接口。38其他的:第一,類是對(duì)對(duì)象的餓抽象,抽象類是對(duì)類的抽象,接口是對(duì)行為的抽象。第二,如果行為跨越不同類的對(duì)象,可以使用接口,對(duì)于一些相似的類對(duì)象,用繼承抽象類;第三,從設(shè)計(jì)角度,抽象類是從子類中發(fā)現(xiàn)了公共的東西,泛化出父類,然后子類繼承自父類,而接口是根本不知道子類的存在,方法如何實(shí)現(xiàn)還不確認(rèn),預(yù)先定義。十二、集合39數(shù)組優(yōu)點(diǎn),比如說(shuō)數(shù)組在內(nèi)存中連續(xù)存儲(chǔ),因此可以快速而容易地從頭到尾遍歷元素,可以快速修改元素等等。缺點(diǎn),應(yīng)該是創(chuàng)建時(shí)必須要指定數(shù)組變量的大小,還有在兩個(gè)元素之間添加元素也比較困難。.netframework提供了用于數(shù)據(jù)存儲(chǔ)和檢索的專用類,這些類統(tǒng)稱為集合。這些類提供對(duì)堆棧、隊(duì)列、列表和哈希表的支持。大多數(shù)集合類實(shí)現(xiàn)相同的接口。ArrayList:ArrayList是命名空間System.Colloection下的一部分,他是使用大小按需動(dòng)態(tài)增加的數(shù)組實(shí)現(xiàn)IList接口。ArrayList的容量是ArrayList可以保存的元素?cái)?shù)。ArrayList的默認(rèn)初始容量為0.隨著元素添加到Arraylist中,容量會(huì)根據(jù)需要通過(guò)重新分配自動(dòng)增加。使用整數(shù)索引可以訪問(wèn)此集合中的元素。此集合中的所以是從0開始。優(yōu)點(diǎn):可以根據(jù)使用大小按需動(dòng)態(tài)增加,不用受事先設(shè)置其大小的控制。還有就是可以隨意地添加、插入或移除某一范圍元素。缺點(diǎn):Arraylist不是類型安全的。存儲(chǔ)時(shí),都看成Object類型。還會(huì)發(fā)生,裝箱,拆箱操作。a) 裝箱:就是把值類型打包到Object引用類型的一個(gè)實(shí)例中。b) 拆箱就是指從對(duì)象中提取值類型。c) 相對(duì)于簡(jiǎn)單的賦值而言,裝箱和拆箱過(guò)程需要進(jìn)行大量的計(jì)算。對(duì)值類型進(jìn)行裝箱時(shí),必須分配并構(gòu)造一個(gè)全新的對(duì)象。其次,拆箱所需的強(qiáng)制裝換也需要進(jìn)行大量的計(jì)算。十三、泛型42泛型是具有占位符(典型參數(shù))的類、結(jié)構(gòu)、接口和方法,這些站位符是類,結(jié)構(gòu)和方法所存儲(chǔ)或使用的一個(gè)或多個(gè)類型的占位符。泛型集合可以將類型參數(shù)用作他所存儲(chǔ)的對(duì)象的占位符;類型參數(shù)作為其字段的類型和其方法的參數(shù)類型出現(xiàn)。43通常情況下,都建議使用泛型集合,因?yàn)檫@樣可以獲得類型安全的直接優(yōu)點(diǎn)而不需要從基集合類型派生并實(shí)現(xiàn)類型特定的成員。此外,如果集合元素為值類型,泛型集合類型的性能通常優(yōu)于對(duì)應(yīng)的非泛型集合類型(并優(yōu)于從非泛型基集合類型派生的類型),因?yàn)槭褂脮r(shí)不必對(duì)元素進(jìn)行裝箱十四、委托與事件44委托是對(duì)函數(shù)的封裝,可以當(dāng)做給方法的特征指定一個(gè)名稱。而事件則是委托的一種特殊形式,當(dāng)發(fā)生有意義的事情時(shí),事件對(duì)象處理通知過(guò)程。45委托是一種引用方法的類型。一旦為委托分配了方法,委托將與該方法具有完全相同的行為。委托對(duì)象用關(guān)鍵字delegate來(lái)聲明。而事件是說(shuō)在發(fā)生其他類或?qū)ο箨P(guān)注的事情時(shí),類或?qū)ο罂赏ㄟ^(guò)事件通知他們。事件用event關(guān)鍵字聲明46例子:貓來(lái)了(CatCome),老鼠要跑(MouseRun),這里可以寫一個(gè)委托PublicdelegatevoidCatShoutEventHandler();//聲明委托PubliceventCatShoutEventHandlerCatShout;//聲明事件CatShout,它的事件類型時(shí)委托CatShoutEventHandlercat.CatShou

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論