《面向?qū)ο蠹夹g(shù)》PPT課件.ppt
《《面向?qū)ο蠹夹g(shù)》PPT課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《面向?qū)ο蠹夹g(shù)》PPT課件.ppt(48頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
第三章面向?qū)ο蠹夹g(shù),本章學(xué)習(xí)要點(diǎn):,了解類的定義方式理解類的成員的重載理解類的繼承的概念熟練掌握派生類的定義方法理解多態(tài)性的概念和重載的概念掌握抽象類與封閉類的使用方法了解接口和委托的概念掌握與字符串和集合相關(guān)的類的使用,3.1定義類,面向?qū)ο缶幊淌且环N功能強(qiáng)大的程序設(shè)計(jì)方法,它以“數(shù)據(jù)控制訪問代碼”為主要原則,圍繞數(shù)據(jù)來組織程序。在進(jìn)行面向?qū)ο缶幊虝r(shí)需要定義數(shù)據(jù)和作用于數(shù)據(jù)上的方法。這樣,數(shù)據(jù)類型可以精確的定義出哪種類型的操作可以應(yīng)用于該數(shù)據(jù)。,3.1.1了解類的定義格式,語法格式:[類型修飾]class類名[:基類]{類成員;},3.1.2添加字段,語法格式:修飾符字段類型字段名例如:publicinta;,3.1.3添加屬性,屬性是用相關(guān)類型成員命名的。它包含存取程序,它的讀程序和寫程序需要聲明。例如:publicstringName{get{returnname;}set{name=value;}},3.1.4添加方法,語法形式:修飾符返回值方法名(參數(shù)列表)例如:publicvoiddisplay(){Console.WriteLine(“一個(gè)方法正在被調(diào)用!”);},3.1.5添加構(gòu)造函數(shù)和析構(gòu)函數(shù),構(gòu)造函數(shù)析構(gòu)函數(shù),構(gòu)造函數(shù),構(gòu)造函數(shù)是類的實(shí)例執(zhí)行的時(shí)候的初始化操作。構(gòu)造函數(shù)的名稱與類的名稱相同。例如,如果一個(gè)類類名為Myclass,那么它的構(gòu)造函數(shù)的名稱是Myclass(),構(gòu)造函數(shù),使用構(gòu)造函數(shù)時(shí)需要注意:類的構(gòu)造函數(shù)名要與類名相同。構(gòu)造函數(shù)沒有返回類型。一般情況下構(gòu)造函數(shù)是public類型的。不能顯式的調(diào)用構(gòu)造函數(shù)。,析構(gòu)函數(shù),析構(gòu)函數(shù)是在類破壞時(shí)自動(dòng)執(zhí)行的操作。它在碎片收集時(shí)自動(dòng)調(diào)用。在聲明析構(gòu)函數(shù)時(shí),它的標(biāo)識符必須為聲明析構(gòu)函數(shù)的類的命名,如果指定了任何其他名稱,就會(huì)發(fā)生錯(cuò)誤。,析構(gòu)函數(shù),析構(gòu)函數(shù)的語法格式:~類名(){銷毀實(shí)例的語法}例如,如果一個(gè)類類名為Myclass,那么它的析構(gòu)函數(shù)的名稱是~Myclass()。,3.2.1重載方法,為多個(gè)方法指定相同的名稱,但使它們具有不同的參數(shù)列表,可以在類中創(chuàng)建重載的方法。調(diào)用的時(shí)候根據(jù)參數(shù)列表的不同來正確的調(diào)用。,3.2.2重載構(gòu)造函數(shù),重載構(gòu)造函數(shù)的方法和重載方法是一樣的,多個(gè)構(gòu)造函數(shù)具有不同的參數(shù)列表。,3.3實(shí)現(xiàn)繼承,繼承是面向?qū)ο蟪绦蛟O(shè)計(jì)中一個(gè)很重要的特性,它是關(guān)于一個(gè)類怎么從另一個(gè)類中共享特性和行為的術(shù)語。在C#中繼承類稱為派生類或子類,被繼承類稱為基類或父類。如果一個(gè)派生類繼承一個(gè)基類,那么這個(gè)派生類會(huì)從其基類中繼承得到所有的操作、屬性、特性、事件以及這些內(nèi)容的實(shí)現(xiàn)方法。要想實(shí)現(xiàn)繼承,必須要定義基類和派生類。,3.3.1定義基類和派生類,派生類的一般格式:[類型修飾符]class派生類名:基類名{派生類成員;},單繼承,單繼承是指由一個(gè)基類派生出一個(gè)派生類,這個(gè)派生類繼承了基類的成員。,多層繼承,繼承是可以傳遞的。如果C從B中派生,B又從A中派生,那么C不僅繼承了B中的成員,同時(shí)也繼承了A中的成員。,3.3.2實(shí)現(xiàn)帶參構(gòu)造函數(shù)的繼承,基類中不帶參數(shù)的構(gòu)造函數(shù)可以直接被繼承。如果需要繼承基類中帶有參數(shù)的構(gòu)造函數(shù),則需要進(jìn)行特別聲明。,3.3.3使用訪問修飾符定義成員作用域,publicprotectedprivate,3.4實(shí)現(xiàn)多態(tài)性,在繼承環(huán)境中的多態(tài)性,一般指同一操作作用于不同類的實(shí)例,不同類將進(jìn)行不同的解釋,最后產(chǎn)生不同的執(zhí)行結(jié)果。多態(tài)一般通過重寫虛方法來實(shí)現(xiàn)。,3.4.1重寫虛方法,在基類中的成員可能執(zhí)行與派生類中同名成員的不同任務(wù),或者派生類中成員必須提供基類中對應(yīng)抽象成員的實(shí)現(xiàn)方式,這種過程稱為重寫。當(dāng)類中的方法聲明前加上virtual修飾符,我們將此方法稱為虛方法?;愔刑摲椒ǖ膶?shí)現(xiàn)方式,在派生類中可以通過重寫來改變。,重寫虛方法的一般格式:,publicclassBaseclass{publicvirtualvoidshow(){}}publicclassDerivedclass:Baseclass{publicoverridevoidshow(){}},3.4.2使用new關(guān)鍵字,如果成員方法使用new修飾、那么表示這個(gè)成員是“全新”的,即使基類有相同簽名的成員方法并說明為virtual,這個(gè)方法也和基類方法相同簽名方法沒有任何關(guān)系。,3.5.1使用抽象類與抽象方法,抽象類的概念一般是指,基類并不與具體的事物相聯(lián)系,而只是表達(dá)一種抽象的概念。而沒有具體實(shí)現(xiàn)的方法叫做抽象方法,要想使用抽象方法,必須使用override關(guān)鍵字進(jìn)行重寫,抽象類與抽象方法都使用abstract關(guān)鍵字來修飾。,3.5.1使用抽象類與抽象方法,抽象類與抽象方法的一般形式如下所示:publicabstractclassA{publicabstractvoidStart(inti);},抽象類和抽象方法有如下特點(diǎn):,抽象類不能實(shí)例化要想使用抽象類,必須繼承這個(gè)類,生成派生類抽象方法沒有實(shí)現(xiàn)部分要想使用抽象方法,必須對它進(jìn)行重寫抽象方法所在的類必然是抽象類抽象類中可以有抽象方法,也可以沒有,3.5.2使用密封類和密封方法,密封類的一般形式如下所示:PublicsealedclassA{publicvoidshow(){}}被聲明為sealed的類不能被繼承,密封方法,不是每個(gè)類的成員方法都可以作為密封方法,密封方法必須對基類的虛方法進(jìn)行重載。所以在聲明密封方法時(shí),sealed修飾符總是和override同時(shí)使用。被聲明為密封方法,就不能再被重寫了。,3.6使用接口,接口(Interface)用來定義一種程序的協(xié)定。它包含屬性、方法、事件和索引器。接口本身不提供它所定義的成員的實(shí)現(xiàn)。接口只指定實(shí)現(xiàn)該接口的類或接口必須提供的成員,所以接口不能被實(shí)例化。,接口,接口是使用interface關(guān)鍵字定義的,定義形式如下:[訪問修飾符]inferface接口名稱[:基接口列表]例如:interfaceIComparable{intNum1{get;set;}intNum2{get;set;}intCompareTo();},接口,在C#中,接口具有如下一些特點(diǎn):C#的接口是獨(dú)立于類來定義的接口可以定義屬性、方法、事件和索引器一個(gè)接口定義一個(gè)只有抽象成員的引用類型,沒有執(zhí)行代碼接口不能繼承類,類可以繼承接口類只能繼承一個(gè)類,而接口和類都可以繼承多個(gè)接口,3.7使用委托,在C#語言中,委托也是面向?qū)ο蟮?。可以使用委托將方法封裝在委托的對象內(nèi),然后再使用委托的對象將參數(shù)傳遞給方法,從而實(shí)現(xiàn)方法,但卻無需直接調(diào)用方法。,3.7.1定義委托,委托的定義與方法很相似,但是沒有實(shí)現(xiàn)部分,并且需要使用delegate關(guān)鍵字。委托的定義格式如下:[修飾符]delegate返回類型委托名(參數(shù)列表)例如:delegatedoubleMyDelegate(doublea,doubleb);,3.8使用C#常用類,.NETFramework為我們提供了強(qiáng)大的類庫,類庫中包含了許多我們常用的類。這給編程人員的工作帶來了極大地方便。通常使用命名空間將這些類組織為層次結(jié)構(gòu)。,3.8.1使用String類,C#中的String類與string類型有些相似,但由于它是類庫中的類,因此它具備類的特征,他有一些功能強(qiáng)大的方法,使它更具實(shí)用性。,String類的常用方法,3.8.2使用StringBuilder類,調(diào)用String類的方法對字符串進(jìn)行操作時(shí),并未改變字符串本身。那么,如果我們要改變字符串本身,我們可以使用StringBuilder類,這個(gè)類的對象通常稱為可變字符串。這個(gè)類的命名空間為:System.Text,StringBuilder類的常用方法,3.8.3使用ArrayList類,ArrayList是一種集合類,在C#中,如果要使用集合類,必須在程序頭添加以下聲明,為集合類指明命名空間:usingSystem.Collections;要訪問ArrayList集合類的對象元素,也要使用索引,這和數(shù)組有些相似。,ArrayList類的常用方法,3.8.4使用Stack類,Stack也是一個(gè)集合類,它遵循LIFO(LastInFirstOut)原則,相當(dāng)于堆棧。因此,它也具有與堆棧相似的特性。,Stack類的常用方法,3.8.5使用Queue類,Queue類同意也是一個(gè)集合類。與Stack類相比,它更像一個(gè)隊(duì)列。因此它遵循FIFO(FirstInFirstOut)原則。,Queue類的常用方法,3.8.6使用SortedList類,SortedList也是一個(gè)特殊的集合類,被稱為字典集合。字典集合的每一個(gè)元素都由一對鍵/值對組成。,SortedList類的常用方法,課后習(xí)題,類的主要成員是什么?簡述構(gòu)造函數(shù)與析構(gòu)函數(shù)的作用。常用的訪問修飾符有那些?簡述抽象類的特征。什么是接口?String類與StringBuilder類的區(qū)別是什么?常用的集合類有哪些?各有什么特點(diǎn)?,- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 面向?qū)ο蠹夹g(shù) 面向 對象 技術(shù) PPT 課件
鏈接地址:http://m.italysoccerbets.com/p-12727053.html