資源描述:
《面向?qū)ο蠡A(chǔ)類與對象.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、類與對象C#面向?qū)ο蟪绦蛟O(shè)計(jì)案例教程教學(xué)目標(biāo)(1)初步理解面向?qū)ο蟮木幊趟枷耄?2)能夠區(qū)分類和對象,理解類和對象之間的關(guān)系;(3)學(xué)會自定義類,學(xué)會創(chuàng)建與使用對象;(4)能區(qū)分字段與屬性、屬性與方法;(5)掌握實(shí)例構(gòu)造函數(shù)重載及其應(yīng)用,了解析構(gòu)函數(shù);(6)能區(qū)分實(shí)例成員與靜態(tài)成員,能定義并正確調(diào)用兩種成員;(7)掌握對象作為方法參數(shù)在值傳遞方式和引用傳遞方式下的區(qū)別。2面向?qū)ο蠡靖拍?10.30)對象程序中的對象來源于生活,現(xiàn)實(shí)生活中的某個(gè)實(shí)體經(jīng)過抽象、建模后就變成程序中的一個(gè)對象,即用特定符號描述的對象。程序中的對象有共同的結(jié)構(gòu)模型,包括對象名
2、、一組屬性、一組操作,其中屬性描述對象的靜態(tài)特征,表示對象的狀態(tài),是類的數(shù)據(jù)成員;操作(或稱方法)描述對象的行為,是對象的動態(tài)特征,通常是對數(shù)據(jù)成員進(jìn)行操作的方法。3類現(xiàn)實(shí)生活中的對象往往可以根據(jù)共性進(jìn)行歸類,一組具有共同特征和行為的相似對象歸為一類。程序設(shè)計(jì)中,把一組相似對象的共同特征抽象出來并存儲在一起,就形成了類。從具體對象到類實(shí)際上是一個(gè)概括的過程,把對象的共同特征抽取出來,形成了類,如果再對這個(gè)類用計(jì)算機(jī)語言加以描述,就形成了程序中的類,這個(gè)過程稱為抽象。4面向?qū)ο?類)的幾個(gè)特征1.封裝封裝實(shí)際上是在類的設(shè)計(jì)過程中完成的,類對外部提供統(tǒng)一
3、的接口方法,類的內(nèi)部相當(dāng)于一個(gè)黑盒,類的使用者并不知道類的內(nèi)部實(shí)現(xiàn)細(xì)節(jié),只要知道怎么調(diào)用這些接口方法就夠了。2.繼承現(xiàn)實(shí)世界中有很多事物之間存在一般化與特殊化的關(guān)系,這都是由于事物之間存在著“繼承”關(guān)系,這種思想反映在程序設(shè)計(jì)中,就是繼承,即一個(gè)類從另一個(gè)類獲得了已有的基本特征,并在此基礎(chǔ)上增加了自身的一些特殊特征。5面向?qū)ο蟮膸讉€(gè)特征3.多態(tài)在面向?qū)ο蟪绦蛟O(shè)計(jì)中,多態(tài)是指用戶對一個(gè)對象進(jìn)行一個(gè)操作,但具體的動作卻取決于這個(gè)對象的類型,即對不同的對象執(zhí)行相同的操作會產(chǎn)生不同的結(jié)果。從多態(tài)發(fā)生的時(shí)機(jī)上分,多態(tài)可以分為編譯時(shí)多態(tài)和運(yùn)行時(shí)多態(tài)兩種。。6類和
4、對象【案例簡介】定義一個(gè)貓類,有姓名,品種,毛色,體重,出生日期等屬性,以及打招呼,喵喵叫,抓老鼠的行為.創(chuàng)建并使用這個(gè)類的實(shí)例。【案例目的】(1)學(xué)會自定義類;(2)學(xué)會用自定義類創(chuàng)建、實(shí)例化對象,通過對象引用成員?!炯夹g(shù)要點(diǎn)】掌握類定義的結(jié)構(gòu)框架。78類和對象代碼及分析定義了一個(gè)貓類Cat,在Main()方法中聲明并實(shí)例化兩個(gè)貓類對象。9相關(guān)知識及注意事項(xiàng)1.類的定義類定義的一般格式如下:class<類名>{private<私有的字段、方法、屬性>protected<保護(hù)的字段、方法、屬性>public<公有的字段、方法、屬性>}Public:不
5、限制對該類的訪問Protected:受保護(hù)的,表示該類只能被這個(gè)類的成員或派生類成員訪問Private:私有的,只能被該類的成員訪問。102.對象的定義與使用1)對象的聲明與實(shí)例化類名對象名;//聲明對象對象名=new類名();//實(shí)例化對象例如,創(chuàng)建一個(gè)名為catBobi的貓類對象代碼為:CatcatBobi;catBobi=newCat();也可以把對象聲明與實(shí)例化合為一步進(jìn)行:CatcatBobi=newCat();112.對象的定義與使用2)對象的使用在面向?qū)ο笾?,對象不是一個(gè)被動接受處理的數(shù)據(jù),而是一個(gè)擁有數(shù)據(jù)并能主動提供服務(wù)的實(shí)體。一個(gè)對
6、象被創(chuàng)建后,就可以通過對象本身來獲取對象狀態(tài)或調(diào)用對象行為。調(diào)用對象成員的格式為:對象名.對象成員123.類成員的訪問修飾符類的成員的訪問修飾符及其含義修 飾 符說 明public該成員可以被本類及本類以外的所有類訪問private該成員只能在本類內(nèi)部被訪問protected該成員只能被本類及本類的派生類訪問internal該成員只能在所在的程序集內(nèi)部訪問internalprotected該成員可以在所在的程序集內(nèi)部或本類的派生類中被訪問13思考一年齡是公有變量,可以隨時(shí)訪問隨時(shí)賦值,可年齡不應(yīng)該為負(fù)數(shù),如果輸入也可以編譯,不出現(xiàn)語法錯(cuò)誤。一般我們
7、要對數(shù)據(jù)進(jìn)行合法性檢查,避免出現(xiàn)嚴(yán)重后果。我們可以把a(bǔ)ge設(shè)置成私有變量,在類內(nèi)部檢查合法性,在通過公有函數(shù)訪問。例如:14//函數(shù)用來為age變量賦值publicvoidSetAge(intageValue){if(ageValue<=0)age=0;elseage=ageValue;}//讀取變量age的值publicintGetAge(){returnage;}15思考二以上方法可以解決age的訪問問題,但實(shí)際上人們習(xí)慣把a(bǔ)ge當(dāng)作一個(gè)變量,而不是通過函數(shù)訪問的方式得到。C#為解決這類問題,專門設(shè)計(jì)一種特殊的語法-屬性。在屬性中,已經(jīng)定義了ge
8、t與set兩個(gè)訪問器,用來讀取以及設(shè)置變量的值。例如16publicintage{get{returnage