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