dyz第四章在中實現(xiàn)oop概念_第1頁
dyz第四章在中實現(xiàn)oop概念_第2頁
dyz第四章在中實現(xiàn)oop概念_第3頁
dyz第四章在中實現(xiàn)oop概念_第4頁
dyz第四章在中實現(xiàn)oop概念_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C#

中實現(xiàn)

OOP

概念第四章回顧

第三章C#基礎(chǔ)C#變量的聲明方式如下:

AccessModifierDataTypeVariableName;在C#中,數(shù)據(jù)類型分為兩種基本類型,即值類型和引用類型。裝箱是指從值類型到引用類型的轉(zhuǎn)換,而取消裝箱是指從引用類型到值類型的轉(zhuǎn)換。C#的結(jié)構(gòu)內(nèi)部可以定義方法,也可以擁有構(gòu)造函數(shù)。目標在C#中使用構(gòu)造函數(shù)在C#中使用析構(gòu)函數(shù)解釋垃圾回收器的工作原理討論方法重載討論操作符重載在C#中使用繼承討論C#中的重寫C#中的構(gòu)造函數(shù)3-1是類中的特殊類型的方法是每次創(chuàng)建對象時要調(diào)用的函數(shù)通常用于初始化與類同名不返回值構(gòu)造函數(shù)3-2usingSystem;publicclassDaysInYear{privateintdays;publicDaysInYear(){days=365;}staticvoidMain(String[]args){DaysInYearnewDaysInYear=newDaysInYear();Console.WriteLine(newDaysInYear.days); }}無構(gòu)造函數(shù)輸出的結(jié)果是0有構(gòu)造函數(shù)輸出結(jié)果是365帶參數(shù)的構(gòu)造函數(shù)3-3…publicclassDaysInYear{privateintdays;publicDaysInYear(){days=365; }publicDaysInYear(intday){days=day;}publicDaysInYear(StringdayOne){ days=Convert.ToInt32(dayOne);}publicvoidsetDay(intnewDays){ days=newDays;}…}傳遞不同個數(shù)的參數(shù)傳遞個數(shù)相同但類型不同的參數(shù)C#中的析構(gòu)函數(shù)由C#中的垃圾回收器調(diào)用垃圾回收器通過銷毀不再需要或不再被引用的對象來釋放內(nèi)存語法

…~DaysInYear(){ //析構(gòu)函數(shù)實現(xiàn)}…垃圾回收器3-1垃圾回收器的工作原理如果為定義析構(gòu)函數(shù)的對象分配了內(nèi)存,運行庫將把該對象添加到需要銷毀的對象的列表中。垃圾回收器定期檢查有沒有不再被引用的對象如果找到了其名稱沒有列在銷毀器列表中的對象,就立即清除該對象。完成垃圾回收后,將調(diào)用銷毀器線程,該線程調(diào)用有標記為“準備銷毀”的對象的銷毀方法

(析構(gòu)函數(shù))。垃圾回收器3-2對象銷毀過程發(fā)生后,就將該對象從需要銷毀的對象列表中刪除。因為該對象沒有被引用,也沒有列在銷毀器列表中,所以下次進行垃圾回收時就會將它清除。垃圾回收器3-3有析構(gòu)函數(shù)的對象占用的資源較多,因為即使不再需要它們,它們?nèi)詴趦?nèi)存中駐留較長時間。銷毀過程作為獨立的線程執(zhí)行,該線程

會占用大量資源。方法重載重載方法有兩種方式指定不同個數(shù)的參數(shù)指定不同類型的參數(shù)不同參數(shù)個數(shù)的方法重載usingSystem;publicclassArea{privateintareaVal;publicvoidAreaCal(intradius){areaVal=(22/7)*radius*radius;}publicvoidAreaCal(intlength,intbreadth){areaVal=length*breadth;}publicvoidAreaCal(intlength,intbreadth,intheight){areaVal=length*breadth*height;}…}參數(shù)的類型相同參數(shù)個數(shù)不同不同參數(shù)類型的方法重載...publicvoidAreaCal(intradius){areaVal=(22/7)*radius*radius;}publicvoidAreaCal(stringshapeName){Console.WriteLine("{0}的面積沒有計算",shapeName);}...方法中參數(shù)個數(shù)相等,參數(shù)類型不同操作符重載3-1重載操作符意味著使該操作符具有不同的行為使用操作符可以使方程式簡單易懂…//第1行intresult=Decimal.Add(54,200);//第2行intresult2=54+200;…上述兩行執(zhí)行同樣的操作,但操作符更簡便易懂操作符重載3-2以下是可以重載的操作符列表操作符重載3-3usingSystem;publicstructDistance{publicDistance(intlon,intmag){ this.longitude=lon; this.latitude=mag;}intlongitude,latitude;publicstaticDistanceoperator-(Distancefirst,Distancesecond){ returnnewDistance(first.longitude-second.longitude,first.latitude-second.latitude);}//主函數(shù)}publicstaticvoidMain(){ Distancestart=newDistance(); DistancenewDistance=newDistance(); Distancefinish=newDistance(); start.longitude=12; start.latitude=10; finish.longitude=2; finish.latitude=1; newDistance=start-finish; Console.WriteLine("終點的位置在起點以東{0}度,以北{1}度。",newDistance.longitude,newDistance.latitude);}C#中的繼承2-1將新類作為另一個類的后代來聲明和使用避免重復編寫代碼提供代碼重用的巨大好處C#中的繼承2-2有兩種繼承類型單一繼承多重繼承

C#只支持單一繼承,不支持多重繼承單一繼承usingSystem;classCharacterVal{publicintsetCharVal(charch){charcharVal=ch;Console.WriteLine("輸入的字符是:{0}",charVal);return(0);}}classStringVal:CharacterVal{publicstringstrVal;

publicintsetStrVal(stringstr){strVal=str;Console.WriteLine("輸入的字符串是:{0}",strVal);return(0);}}classInheritance{staticvoidMain(){StringValobject1=newStringVal();Object1.setCharVal('j');Object1.setStrVal("enjoy");}}類StringVal繼承CharacterVal因此可以直接引用方法setCharVal密封類如果不需要類被繼承則應當密封該類…sealedclassclassOne

{//類的實現(xiàn)}…通過指定sealed關(guān)鍵字,可以密封任何類方法重寫2-1重寫基類中現(xiàn)有方法的步驟:-在繼承類中聲明同名的新方法

-在該方法名前附加new關(guān)鍵字

方法重寫2-2usingSystem;classIntAddition{publicvoidadd(){intfirstNum=1;intsecondNum=2;Console.WriteLine("兩數(shù)之和是:{0}",firstNum+secondNum);}}classStringAddition:IntAddition{newpublicvoidadd(){stringfirstStr="a";stringsecondStr="b";Console.WriteLine("兩字符串之和是:{0}",firstStr+secondStr);}}classMethodOverride{publicstaticvoidMain(){StringAdditionobjStringAddition=newStringAddition();objStringAddition.add();}}在StringAddition類中基類中add方法被重載總結(jié)2-1帶參數(shù)的構(gòu)造函數(shù)是接受參數(shù)的構(gòu)造函數(shù)在

C#中,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論