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