版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章
方
法
本章要點(diǎn):
方法的概念
方法的定義
方法的調(diào)用
參數(shù)傳遞中的類(lèi)型轉(zhuǎn)換
參數(shù)的值傳遞和引用傳遞
方法的嵌套調(diào)用與遞歸調(diào)用5.1循序漸進(jìn)學(xué)理論
5.1.1C#中的程序模塊——方法
5.1.2方法的定義
[格式]:方法修飾符
數(shù)據(jù)類(lèi)型說(shuō)明符
方法名([形式參數(shù)說(shuō)明列表])/*定義方法頭*/{變量、數(shù)組的定義語(yǔ)句;
其它可執(zhí)行部分}【例5-1】
編寫(xiě)一個(gè)方法,用來(lái)求任意兩個(gè)整數(shù)之間的所有數(shù)的平方和?!纠?-2】
編寫(xiě)一個(gè)實(shí)現(xiàn)如下功能的函數(shù):要求用戶輸入姓名,然后輸出五行如下信息:“歡迎您,***同志。這里是C#編程世界!”5.1.3方法的調(diào)用
[格式1]:方法名([實(shí)際參數(shù)列表])[格式2]:對(duì)象名.方法名([實(shí)際參數(shù)列表])例如,上一章編程中使用的語(yǔ)句“randomObj.Next();”就是調(diào)用對(duì)象randomObj的Next方法。[格式3]:類(lèi)名.方法名([實(shí)際參數(shù)列表])【例5-3】編寫(xiě)程序調(diào)用例5-1中的過(guò)程pfh?!纠?-4】編寫(xiě)程序調(diào)用例5-2中的過(guò)程Welcome。5.1.4參數(shù)傳遞中的類(lèi)型轉(zhuǎn)換
實(shí)參類(lèi)型相應(yīng)的形參類(lèi)型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)使用“值傳遞”的方式來(lái)傳遞參數(shù)時(shí),實(shí)參把值復(fù)制一份傳給形參,形參接收了實(shí)參的值后與實(shí)參已不再存在任何聯(lián)系。
【例5-6】編寫(xiě)一個(gè)方法,用來(lái)把兩個(gè)整型變量的值交換,在Main方法中調(diào)用該方法加以驗(yàn)證。2.引用傳遞
當(dāng)使用“引用傳遞”方式傳遞參數(shù)時(shí),調(diào)用者給了被調(diào)用方法直接訪問(wèn)和修改調(diào)用者的原始數(shù)據(jù)的權(quán)利。在方法中對(duì)形參進(jìn)行修改也就修改了對(duì)應(yīng)的實(shí)參,這種方式又稱(chēng)雙向傳遞。在C#中要通過(guò)引用方式傳遞數(shù)據(jù),需使用關(guān)鍵字ref。使用方法是在定義方法時(shí),在按引用傳遞的形式參數(shù)的類(lèi)型說(shuō)明符前加上關(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ù)通常用來(lái)指定由被調(diào)用方法對(duì)參數(shù)進(jìn)行初始化。
【例5-7】利用引用傳遞實(shí)現(xiàn)例5-6的功能。
5.1.6變量的生命期和作用域
1.變量的生命期
變量的持續(xù)周期(也稱(chēng)為生命周期)是指該變量在內(nèi)存中存在的周期。方法中的局部變量有一個(gè)自動(dòng)的生命周期。自動(dòng)生命周期變量是在程序執(zhí)行到達(dá)它們的聲明語(yǔ)句時(shí)由程序自動(dòng)創(chuàng)建的;也就是說(shuō),聲明的程序塊被激活時(shí),它們存在;而在它們聲明的程序塊退出時(shí),釋放它們。我們把具有自動(dòng)生命周期的變量稱(chēng)為自動(dòng)變量或局部變量。
2.變量的作用域
變量能夠使用的程序段稱(chēng)變量的作用域。變量的作用域有以下規(guī)則:(1)在程序塊中聲明的局部變量或引用僅可在該程序塊或者在嵌套于該程序塊的程序塊中被使用。(2)類(lèi)的成員具有類(lèi)的作用范圍并且在類(lèi)的聲明空間中可以被看到。(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)變量的生命周期是從定義它們的類(lèi)被載入內(nèi)存時(shí)開(kāi)始,直到程序運(yùn)行結(jié)束時(shí)為止。定義它們的類(lèi)被載入內(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】
編寫(xiě)一個(gè)函數(shù)求下列的函數(shù)值。2.方法的遞歸調(diào)用
【例5-10】
若干個(gè)人排成一個(gè)隊(duì)領(lǐng)蘋(píng)果,已知第一個(gè)人的領(lǐng)的蘋(píng)果數(shù)為1個(gè),從第二個(gè)人開(kāi)始每個(gè)人領(lǐng)的蘋(píng)果數(shù)是前一個(gè)人領(lǐng)的蘋(píng)果數(shù)的2倍再加3,問(wèn)第n個(gè)人領(lǐng)了多少個(gè)蘋(píng)果?
一般來(lái)說(shuō)如果某個(gè)問(wèn)題能夠用遞歸來(lái)求解,該問(wèn)題一定能夠歸結(jié)成一個(gè)函數(shù)公式,如本題求第n個(gè)人領(lǐng)的蘋(píng)果數(shù),用函數(shù)apple(n)表示,則本題的apple(n)可描述如下。從程序設(shè)計(jì)的角度來(lái)說(shuō),遞歸過(guò)程必須解決兩個(gè)問(wèn)題:一是遞歸計(jì)算的公式,二是遞歸結(jié)束的條件。本題可以寫(xiě)成:遞歸計(jì)算公式:
apple(n)=2*apple(n-1)+3n>1遞歸結(jié)束條件:
apple(1)=1凡是能夠表示成上述式子的數(shù)學(xué)問(wèn)題均可以用遞歸來(lái)實(shí)現(xiàn),在遞歸函數(shù)中一般可采用雙分支語(yǔ)句來(lái)實(shí)現(xiàn):if(遞歸結(jié)束條件)return(遞歸終止值);elsereturn(遞歸計(jì)算公式);5.2典型實(shí)例練能力
5.2.1典型實(shí)例一:求孿生質(zhì)數(shù)
【實(shí)例題目】
編寫(xiě)程序求出100之內(nèi)的所有孿生質(zhì)數(shù),所謂孿生質(zhì)數(shù)是指兩個(gè)質(zhì)數(shù),它們的差為2,如5和7、11和13等都是孿生質(zhì)數(shù)。要求:判斷某數(shù)是否為質(zhì)數(shù)要用一個(gè)方法來(lái)實(shí)現(xiàn),編寫(xiě)成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)委的打分求出選手的得分需編寫(xiě)成一個(gè)方法,要求編寫(xiě)成Windows應(yīng)用程序。程序的設(shè)計(jì)界面如圖5-7所示,程序的運(yùn)行界面如圖5
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年鋼結(jié)構(gòu)廠房租賃合同模板下載3篇
- 2024年購(gòu)物中心物業(yè)管理合同
- 2024年龍門(mén)吊銷(xiāo)售協(xié)議:固定式起重機(jī)購(gòu)銷(xiāo)協(xié)議版B版
- 2024版煤炭經(jīng)營(yíng)場(chǎng)地租賃合同范文
- 《協(xié)議遺失證明:2024年作廢協(xié)議補(bǔ)充協(xié)議》版
- 2024某企業(yè)與某大學(xué)關(guān)于共建實(shí)驗(yàn)室的校企合作協(xié)議
- 2025年度船舶租賃與船舶拆解回收合同樣本3篇
- 2024春季建筑鋼材交易協(xié)議一
- 幼兒園工作總結(jié)希望與信任
- 2024零售業(yè)銷(xiāo)售協(xié)議標(biāo)準(zhǔn)化文本版B版
- 汽車(chē)OTS工程樣件認(rèn)可流程課件
- 物流公司出納年終工作總結(jié)
- 明細(xì)賬(三欄式)模板
- 三年級(jí)數(shù)學(xué)思維訓(xùn)練【奧數(shù)舉一反三】附部分答案解析
- 2023年數(shù)學(xué)競(jìng)賽AMC8真題A卷(含答案)
- 審計(jì)控制活動(dòng)方案
- 單位洗車(chē)房管理制度
- 2023年醫(yī)療軟件實(shí)施工程師年度總結(jié)及下年規(guī)劃
- 廣西壯族自治區(qū)欽州市浦北縣2022-2023學(xué)年七年級(jí)上學(xué)期期末英語(yǔ)試題
- 化驗(yàn)員績(jī)效考核細(xì)則
- 動(dòng)力學(xué)全套課件
評(píng)論
0/150
提交評(píng)論