




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第5章
方
法
本章要點(diǎn):
方法的概念
方法的定義
方法的調(diào)用
參數(shù)傳遞中的類型轉(zhuǎn)換
參數(shù)的值傳遞和引用傳遞
方法的嵌套調(diào)用與遞歸調(diào)用5.1循序漸進(jìn)學(xué)理論
5.1.1C#中的程序模塊——方法
5.1.2方法的定義
[格式]:方法修飾符
數(shù)據(jù)類型說明符
方法名([形式參數(shù)說明列表])/*定義方法頭*/{變量、數(shù)組的定義語句;
其它可執(zhí)行部分}【例5-1】
編寫一個(gè)方法,用來求任意兩個(gè)整數(shù)之間的所有數(shù)的平方和?!纠?-2】
編寫一個(gè)實(shí)現(xiàn)如下功能的函數(shù):要求用戶輸入姓名,然后輸出五行如下信息:“歡迎您,***同志。這里是C#編程世界!”5.1.3方法的調(diào)用
[格式1]:方法名([實(shí)際參數(shù)列表])[格式2]:對(duì)象名.方法名([實(shí)際參數(shù)列表])例如,上一章編程中使用的語句“randomObj.Next();”就是調(diào)用對(duì)象randomObj的Next方法。[格式3]:類名.方法名([實(shí)際參數(shù)列表])【例5-3】編寫程序調(diào)用例5-1中的過程pfh?!纠?-4】編寫程序調(diào)用例5-2中的過程Welcome。5.1.4參數(shù)傳遞中的類型轉(zhuǎn)換
實(shí)參類型相應(yīng)的形參類型boolobjectbytedecimal,double,float,int,uint,long,ulong,object,short,ushortsbytedecimal,double,float,int,long,object,shortchardecimal,double,float,int,uint,long,ulong,object,ushortdecimalobjectdoubleobjectfloatdouble,objectintdecimal,double,float,long,objectuintdecimal,double,float,long,ulong,objectlongdecimal,double,float,objectulongdecimal,double,float,objectshortdecimal,double,float,int,long,objectushortdecimal,double,float,int,uint,long,ulong,object【例5-5】分析下列程序的執(zhí)行結(jié)果。
[程序代碼]usingSystem;classA_5_5{staticfloatSqr(floatk)//參數(shù)為float型
{return(k*k);}publicstaticvoidMain(){inty;floatyy;y=6;
yy=Sqr(y);//調(diào)用Sqr方法
Console.WriteLine("{0}的平方是{1}",y,yy);//輸出
}}[運(yùn)行結(jié)果]5.1.5參數(shù)的傳遞:值傳遞、引用傳遞和輸出參數(shù)
所謂參數(shù)傳遞是指實(shí)參把數(shù)據(jù)傳給形參的方式,C#中的參數(shù)傳遞可分成四種:值傳遞、引用傳遞、輸出參數(shù)和參數(shù)數(shù)組。1.值傳遞
當(dāng)使用“值傳遞”的方式來傳遞參數(shù)時(shí),實(shí)參把值復(fù)制一份傳給形參,形參接收了實(shí)參的值后與實(shí)參已不再存在任何聯(lián)系。
【例5-6】編寫一個(gè)方法,用來把兩個(gè)整型變量的值交換,在Main方法中調(diào)用該方法加以驗(yàn)證。2.引用傳遞
當(dāng)使用“引用傳遞”方式傳遞參數(shù)時(shí),調(diào)用者給了被調(diào)用方法直接訪問和修改調(diào)用者的原始數(shù)據(jù)的權(quán)利。在方法中對(duì)形參進(jìn)行修改也就修改了對(duì)應(yīng)的實(shí)參,這種方式又稱雙向傳遞。在C#中要通過引用方式傳遞數(shù)據(jù),需使用關(guān)鍵字ref。使用方法是在定義方法時(shí),在按引用傳遞的形式參數(shù)的類型說明符前加上關(guān)鍵字ref,在調(diào)用方法時(shí),在按引用傳遞的實(shí)際參數(shù)之前加上關(guān)鍵字ref。
3.輸出參數(shù)
若將引用傳遞中的關(guān)鍵字ref用out替換,則參數(shù)就變成了輸出參數(shù)。也允許在被調(diào)方法中修改與輸出參數(shù)相對(duì)應(yīng)的實(shí)參的值。輸出參數(shù)通常用來指定由被調(diào)用方法對(duì)參數(shù)進(jìn)行初始化。
【例5-7】利用引用傳遞實(shí)現(xiàn)例5-6的功能。
5.1.6變量的生命期和作用域
1.變量的生命期
變量的持續(xù)周期(也稱為生命周期)是指該變量在內(nèi)存中存在的周期。方法中的局部變量有一個(gè)自動(dòng)的生命周期。自動(dòng)生命周期變量是在程序執(zhí)行到達(dá)它們的聲明語句時(shí)由程序自動(dòng)創(chuàng)建的;也就是說,聲明的程序塊被激活時(shí),它們存在;而在它們聲明的程序塊退出時(shí),釋放它們。我們把具有自動(dòng)生命周期的變量稱為自動(dòng)變量或局部變量。
2.變量的作用域
變量能夠使用的程序段稱變量的作用域。變量的作用域有以下規(guī)則:(1)在程序塊中聲明的局部變量或引用僅可在該程序塊或者在嵌套于該程序塊的程序塊中被使用。(2)類的成員具有類的作用范圍并且在類的聲明空間中可以被看到。(3)當(dāng)程序塊嵌套于方法體中,并且在外層程序塊中的一個(gè)標(biāo)識(shí)符和內(nèi)層程序塊中定義的標(biāo)識(shí)符有相同的名字時(shí),將會(huì)產(chǎn)生錯(cuò)誤。
3.靜態(tài)變量
靜態(tài)變量是用static定義的變量,靜態(tài)變量的生命周期是從定義它們的類被載入內(nèi)存時(shí)開始,直到程序運(yùn)行結(jié)束時(shí)為止。定義它們的類被載入內(nèi)存時(shí),就已經(jīng)為這些變量分配了存儲(chǔ)空間,并對(duì)它們進(jìn)行了初始化。但靜態(tài)變量相當(dāng)于局部變量,其作用域與局部變量相同。
【例5-8】分析下面程序的運(yùn)行結(jié)果。usingSystem;classA_5_8{staticinta=3,b; //①publicstaticvoidMain() //②{intc=6; //③a=a+2;b=b+2;c=c+2; //④func1(); //⑤
Console.WriteLine("{0},{1},{2}",a,b,c); //⑥}staticvoidfunc1(){intb=2,c=3; //⑦a=a+2;b=b+2;c=c+2; //⑧Console.WriteLine("{0},{1},{2}",a,b,c); //⑨}}5.1.7方法的嵌套與遞歸調(diào)用
1.方法的嵌套調(diào)用
【例5-9】
編寫一個(gè)函數(shù)求下列的函數(shù)值。2.方法的遞歸調(diào)用
【例5-10】
若干個(gè)人排成一個(gè)隊(duì)領(lǐng)蘋果,已知第一個(gè)人的領(lǐng)的蘋果數(shù)為1個(gè),從第二個(gè)人開始每個(gè)人領(lǐng)的蘋果數(shù)是前一個(gè)人領(lǐng)的蘋果數(shù)的2倍再加3,問第n個(gè)人領(lǐng)了多少個(gè)蘋果?
一般來說如果某個(gè)問題能夠用遞歸來求解,該問題一定能夠歸結(jié)成一個(gè)函數(shù)公式,如本題求第n個(gè)人領(lǐng)的蘋果數(shù),用函數(shù)apple(n)表示,則本題的apple(n)可描述如下。從程序設(shè)計(jì)的角度來說,遞歸過程必須解決兩個(gè)問題:一是遞歸計(jì)算的公式,二是遞歸結(jié)束的條件。本題可以寫成:遞歸計(jì)算公式:
apple(n)=2*apple(n-1)+3n>1遞歸結(jié)束條件:
apple(1)=1凡是能夠表示成上述式子的數(shù)學(xué)問題均可以用遞歸來實(shí)現(xiàn),在遞歸函數(shù)中一般可采用雙分支語句來實(shí)現(xiàn):if(遞歸結(jié)束條件)return(遞歸終止值);elsereturn(遞歸計(jì)算公式);5.2典型實(shí)例練能力
5.2.1典型實(shí)例一:求孿生質(zhì)數(shù)
【實(shí)例題目】
編寫程序求出100之內(nèi)的所有孿生質(zhì)數(shù),所謂孿生質(zhì)數(shù)是指兩個(gè)質(zhì)數(shù),它們的差為2,如5和7、11和13等都是孿生質(zhì)數(shù)。要求:判斷某數(shù)是否為質(zhì)數(shù)要用一個(gè)方法來實(shí)現(xiàn),編寫成Windows應(yīng)用程序。程序的設(shè)計(jì)界面如圖5-5所示,程序的運(yùn)行界面如圖5-6所示。
圖5-5程序設(shè)計(jì)界面
圖5-6程序運(yùn)行界面
5.2.2典型實(shí)例二:校園歌手評(píng)分
【實(shí)例題目】
某學(xué)校要舉辦校園歌手大獎(jiǎng)賽,現(xiàn)在要讓計(jì)算機(jī)為選手評(píng)分,評(píng)分原則為:從若干個(gè)評(píng)委的打分中去掉一個(gè)最低分去掉一個(gè)最高分,剩下的得分取平均即是選手的得分。要求:根據(jù)評(píng)委的打分求出選手的得分需編寫成一個(gè)方法,要求編寫成Windows應(yīng)用程序。程序的設(shè)計(jì)界面如圖5-7所示,程序的運(yùn)行界面如圖5
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度豪華汽車租賃服務(wù)合作協(xié)議書模板
- 二零二五年度倉儲(chǔ)安全管理規(guī)范與倉管員責(zé)任協(xié)議
- 二零二五年度智能倉房房屋買賣全流程規(guī)范化合同
- 初中主體班會(huì)課件
- 2025版航空航天設(shè)備OEM研發(fā)制造合同范本
- 二零二五年度不良資產(chǎn)債權(quán)重組與債務(wù)減免服務(wù)協(xié)議
- 二零二五版高端兒童樂園保育員崗位合同范本
- 二零二五年度環(huán)境監(jiān)測(cè)與污染源分析服務(wù)協(xié)議
- 教育技術(shù)助力在線考試系統(tǒng)建設(shè)
- 二零二五年度茶葉節(jié)慶活動(dòng)贊助合同樣本
- Odoo:Odoo集成與第三方應(yīng)用技術(shù)教程.Tex.header
- 軟組織損傷的流行病學(xué)
- 2024年江西省“振興杯”地質(zhì)調(diào)查員競賽考試題庫(含答案)
- 人教部編版九年級(jí)歷史上冊(cè):第14課 文藝復(fù)興運(yùn)動(dòng) 教學(xué)設(shè)計(jì)
- 機(jī)械設(shè)備賠償協(xié)議
- 高一英語新教材全四冊(cè)單詞表漢譯英默寫(2019新人教版)
- 2024年菏澤鄆城縣結(jié)合事業(yè)單位公開招聘征集高校全日制本科及以上學(xué)歷入伍10人(高頻重點(diǎn)提升專題訓(xùn)練)共500題附帶答案詳解
- 氮?dú)鈨?chǔ)罐畢業(yè)設(shè)計(jì)
- 武術(shù)專業(yè)個(gè)人簡歷模板范文
- 煤礦一崗雙責(zé)制度
- 選煤廠安全規(guī)程
評(píng)論
0/150
提交評(píng)論