c#重載、靜態(tài)方法、構(gòu)造函數(shù)析構(gòu)函數(shù)課件_第1頁
c#重載、靜態(tài)方法、構(gòu)造函數(shù)析構(gòu)函數(shù)課件_第2頁
c#重載、靜態(tài)方法、構(gòu)造函數(shù)析構(gòu)函數(shù)課件_第3頁
c#重載、靜態(tài)方法、構(gòu)造函數(shù)析構(gòu)函數(shù)課件_第4頁
c#重載、靜態(tài)方法、構(gòu)造函數(shù)析構(gòu)函數(shù)課件_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

方法的格式既無參數(shù)也無返回值的方法,如: voidfun(){}有參數(shù)但無返回值的方法,如: voidfun(inta,charch){}無參數(shù)但有返回值方法,如: doublefun(){}既有參數(shù)又有返回值的方法,如: intfun(string[]s){}方法的格式既無參數(shù)也無返回值的方法,如:1方法中的參數(shù)(I)方法中參數(shù)的傳遞 值傳遞、引用傳遞-ref、輸出參數(shù)-out,例: classTest{ staticvoidMain()

voidfun(refintx,refinty){ {

intt=x; inta=3,b=5;

x=y; newTest().fun(refa,ref

b);

y=t; Console.WriteLine("a="+a);

} Console.WriteLine("a="+a);

} } 將上面代碼中的ref關(guān)鍵字去掉,就成了按值傳遞,再把ref換成out試試!方法中的參數(shù)(I)方法中參數(shù)的傳遞2方法中的參數(shù)(II)ref與out的區(qū)別:

1、ref必須在函數(shù)體外初始化。 2、out必須在函數(shù)體內(nèi)初始化,在外面初始化沒意義。也就是說,out型的參數(shù)在函數(shù)體內(nèi)不能得到外面?zhèn)鬟M(jìn)來的初始值。 3、兩者在函數(shù)體的任何修改都將影響到外面。ref-接收外面的值out-向外界輸出值方法中的參數(shù)(II)ref與out的區(qū)別:ref-接收3變長參數(shù)使用變長參數(shù)可以接收多個(gè)不確定個(gè)數(shù)的參數(shù),用關(guān)鍵字params。變長參數(shù)必須位于形參列表的最后,而且只能是一維數(shù)組。params不能與ref

和out聯(lián)用:staticvoidprint(paramsint[]a)

{Console.Write("有{0}個(gè)元素",a.Length);

foreach(intiina)

{Console.Write(i);}

}staticvoidMain(){int[]arr={3,9,2};print(arr);print(35,67,88,91,16);print();}變長參數(shù)使用變長參數(shù)可以接收多個(gè)不確定個(gè)數(shù)的參數(shù),用關(guān)鍵字4方法的重載方法名相同,但方法中參數(shù)的個(gè)數(shù)、類型及順序不同,即為重載方法的返回值不參與重載。如下: voidfun(intx); intfun(intx); voidfun(intx); intfun(intx,inty); voidfun(intx,doubley); voidfun(doubley,intx);不是重載,編譯報(bào)錯(cuò)是重載,可以使用是重載,可以使用方法的重載方法名相同,但方法中參數(shù)的個(gè)數(shù)、類型及順序不同,即5構(gòu)造方法(I)完成對(duì)類實(shí)例對(duì)象的初始化工作。一般(通過方法的參數(shù))用來對(duì)類的成員變量進(jìn)行初始化操作。有以下幾點(diǎn)特征: 1、具有與類相同的名稱

2、沒有返回值類型

3、該方法內(nèi)部沒有return語句當(dāng)一個(gè)新的對(duì)象生成時(shí),構(gòu)造方法由系統(tǒng)自動(dòng)調(diào)用,而且只執(zhí)行一次 例:戰(zhàn)士們進(jìn)入陣地時(shí),每個(gè)人都會(huì)自動(dòng)完成臥倒、瞄準(zhǔn)等動(dòng)作,指揮官?zèng)]有必要一一告訴構(gòu)造方法(I)完成對(duì)類實(shí)例對(duì)象的初始化工作。一般(通過方法的6構(gòu)造方法(II)每個(gè)類都必須要有構(gòu)造方法如果我們?cè)陬愔袥]有顯式地定義構(gòu)造方法,系統(tǒng)將提供一個(gè)不帶參數(shù)的、什么都不做的構(gòu)造方法一旦我們定義

了構(gòu)造方法,

系統(tǒng)將不再提

供默認(rèn)的構(gòu)造

方法classStudent{intid;stringname;

publicStudent(intid,stringname){this.id=id;=name;}}一旦在構(gòu)造方法前面加上了void關(guān)鍵字,那么它將成為一個(gè)普通的成員方法!構(gòu)造方法(II)每個(gè)類都必須要有構(gòu)造方法classStud7構(gòu)造方法的重載classStudent{publicintid=2;publicstringname="Tom";publicintage=21;publicStudent(intid,stringname,intage){this.id=id;=name;this.age=age;}publicStudent(intid,stringname){this.id=id;=name;}publicStudent(){}}//以下是主方法中的操作publicstaticvoidmain(String[]args){Studentstu1=newStudent();Studentstu2=newStudent(103,"Mike");Studentstu3=newStudent(107,"Mary",18);}含有三個(gè)參數(shù)的構(gòu)造方法含有二個(gè)參數(shù)的構(gòu)造方法無參構(gòu)造方法構(gòu)造方法的重載classStudent{//以下是主方法中8構(gòu)造方法與this在一個(gè)構(gòu)造方法中可以使用this關(guān)鍵字調(diào)用它的另一種重載形式,如: publicStudent(intid,stringname) { this.id=id; =name; } publicStudent(intid,stringname,intage)

:this(id,name)//此代碼調(diào)用了上面的重載形式 { this.age=age; }構(gòu)造方法與this在一個(gè)構(gòu)造方法中可以使用this關(guān)鍵字調(diào)9析構(gòu)方法以~符號(hào)開頭,用于執(zhí)行清除關(guān)閉工作不接收參數(shù)、沒有返回值、沒有修飾符析構(gòu)方法不能重載一個(gè)類只能有一個(gè)析構(gòu)方法在垃圾收集器拋棄一個(gè)對(duì)象之前,先調(diào)用析構(gòu)方法不能手動(dòng)調(diào)用,只能由垃圾器調(diào)用析構(gòu)方法以~符號(hào)開頭,用于執(zhí)行清除關(guān)閉工作10靜態(tài)成員在類中,用static修飾的靜態(tài)成員從一開始就存在,而無須用new來創(chuàng)建;也就是說在類的對(duì)象產(chǎn)生之前,static成員就已經(jīng)出現(xiàn)了;沒有用static修飾的成員被稱為“實(shí)例成員”無論創(chuàng)建多少類的實(shí)例對(duì)象,它們都共用同一個(gè)(組)static成員static成員只能用類名直接調(diào)用靜態(tài)方法中不能使用this關(guān)鍵字靜態(tài)成員在類中,用static修飾的靜態(tài)成員從一開始就存在11靜態(tài)與實(shí)例成員的相互調(diào)用靜態(tài)方法不能調(diào)用實(shí)例成員實(shí)例方法可以調(diào)用靜態(tài)成員靜態(tài)成員空間實(shí)例空間實(shí)例空間實(shí)例空間……靜態(tài)與實(shí)例成員的相互調(diào)用靜態(tài)方法不能調(diào)用實(shí)例成員靜態(tài)成員空間12裝箱與拆箱是值類型與引用類型間的相互轉(zhuǎn)換在C#中每一種類型都是從System.Object類派生而來的值類型轉(zhuǎn)換成對(duì)象:裝箱對(duì)象轉(zhuǎn)換成值類型:拆箱 intmyInt1=28; objectmyObject=myInt1; //裝箱 stringstr=myInt1.ToString(); //裝箱 intmyInt2=(int)myObject; //拆箱object與System.Object是相同的裝箱與拆箱是值類型與引用類型間的相互轉(zhuǎn)換object與S13is運(yùn)算符is運(yùn)算符用于檢查某一變量或?qū)ο笫欠衽c指定類型兼容,以確定是否可以進(jìn)行相應(yīng)的轉(zhuǎn)換 staticvoidMain() { Testt=newTest(); Console.Write(20isint); //輸出true Console.Write(20islong); //輸出false Console.Write(tisTe

溫馨提示

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

評(píng)論

0/150

提交評(píng)論