版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第5章
方
法
本章要點:
方法的概念
方法的定義
方法的調(diào)用
參數(shù)傳遞中的類型轉(zhuǎn)換
參數(shù)的值傳遞和引用傳遞
方法的嵌套調(diào)用與遞歸調(diào)用5.1循序漸進學(xué)理論
5.1.1C#中的程序模塊——方法
5.1.2方法的定義
[格式]:方法修飾符
數(shù)據(jù)類型說明符
方法名([形式參數(shù)說明列表])/*定義方法頭*/{變量、數(shù)組的定義語句;
其它可執(zhí)行部分}【例5-1】
編寫一個方法,用來求任意兩個整數(shù)之間的所有數(shù)的平方和?!纠?-2】
編寫一個實現(xiàn)如下功能的函數(shù):要求用戶輸入姓名,然后輸出五行如下信息:“歡迎您,***同志。這里是C#編程世界!”5.1.3方法的調(diào)用
[格式1]:方法名([實際參數(shù)列表])[格式2]:對象名.方法名([實際參數(shù)列表])例如,上一章編程中使用的語句“randomObj.Next();”就是調(diào)用對象randomObj的Next方法。[格式3]:類名.方法名([實際參數(shù)列表])【例5-3】編寫程序調(diào)用例5-1中的過程pfh?!纠?-4】編寫程序調(diào)用例5-2中的過程Welcome。5.1.4參數(shù)傳遞中的類型轉(zhuǎn)換
實參類型相應(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);//輸出
}}[運行結(jié)果]5.1.5參數(shù)的傳遞:值傳遞、引用傳遞和輸出參數(shù)
所謂參數(shù)傳遞是指實參把數(shù)據(jù)傳給形參的方式,C#中的參數(shù)傳遞可分成四種:值傳遞、引用傳遞、輸出參數(shù)和參數(shù)數(shù)組。1.值傳遞
當使用“值傳遞”的方式來傳遞參數(shù)時,實參把值復(fù)制一份傳給形參,形參接收了實參的值后與實參已不再存在任何聯(lián)系。
【例5-6】編寫一個方法,用來把兩個整型變量的值交換,在Main方法中調(diào)用該方法加以驗證。2.引用傳遞
當使用“引用傳遞”方式傳遞參數(shù)時,調(diào)用者給了被調(diào)用方法直接訪問和修改調(diào)用者的原始數(shù)據(jù)的權(quán)利。在方法中對形參進行修改也就修改了對應(yīng)的實參,這種方式又稱雙向傳遞。在C#中要通過引用方式傳遞數(shù)據(jù),需使用關(guān)鍵字ref。使用方法是在定義方法時,在按引用傳遞的形式參數(shù)的類型說明符前加上關(guān)鍵字ref,在調(diào)用方法時,在按引用傳遞的實際參數(shù)之前加上關(guān)鍵字ref。
3.輸出參數(shù)
若將引用傳遞中的關(guān)鍵字ref用out替換,則參數(shù)就變成了輸出參數(shù)。也允許在被調(diào)方法中修改與輸出參數(shù)相對應(yīng)的實參的值。輸出參數(shù)通常用來指定由被調(diào)用方法對參數(shù)進行初始化。
【例5-7】利用引用傳遞實現(xiàn)例5-6的功能。
5.1.6變量的生命期和作用域
1.變量的生命期
變量的持續(xù)周期(也稱為生命周期)是指該變量在內(nèi)存中存在的周期。方法中的局部變量有一個自動的生命周期。自動生命周期變量是在程序執(zhí)行到達它們的聲明語句時由程序自動創(chuàng)建的;也就是說,聲明的程序塊被激活時,它們存在;而在它們聲明的程序塊退出時,釋放它們。我們把具有自動生命周期的變量稱為自動變量或局部變量。
2.變量的作用域
變量能夠使用的程序段稱變量的作用域。變量的作用域有以下規(guī)則:(1)在程序塊中聲明的局部變量或引用僅可在該程序塊或者在嵌套于該程序塊的程序塊中被使用。(2)類的成員具有類的作用范圍并且在類的聲明空間中可以被看到。(3)當程序塊嵌套于方法體中,并且在外層程序塊中的一個標識符和內(nèi)層程序塊中定義的標識符有相同的名字時,將會產(chǎn)生錯誤。
3.靜態(tài)變量
靜態(tài)變量是用static定義的變量,靜態(tài)變量的生命周期是從定義它們的類被載入內(nèi)存時開始,直到程序運行結(jié)束時為止。定義它們的類被載入內(nèi)存時,就已經(jīng)為這些變量分配了存儲空間,并對它們進行了初始化。但靜態(tài)變量相當于局部變量,其作用域與局部變量相同。
【例5-8】分析下面程序的運行結(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】
編寫一個函數(shù)求下列的函數(shù)值。2.方法的遞歸調(diào)用
【例5-10】
若干個人排成一個隊領(lǐng)蘋果,已知第一個人的領(lǐng)的蘋果數(shù)為1個,從第二個人開始每個人領(lǐng)的蘋果數(shù)是前一個人領(lǐng)的蘋果數(shù)的2倍再加3,問第n個人領(lǐng)了多少個蘋果?
一般來說如果某個問題能夠用遞歸來求解,該問題一定能夠歸結(jié)成一個函數(shù)公式,如本題求第n個人領(lǐng)的蘋果數(shù),用函數(shù)apple(n)表示,則本題的apple(n)可描述如下。從程序設(shè)計的角度來說,遞歸過程必須解決兩個問題:一是遞歸計算的公式,二是遞歸結(jié)束的條件。本題可以寫成:遞歸計算公式:
apple(n)=2*apple(n-1)+3n>1遞歸結(jié)束條件:
apple(1)=1凡是能夠表示成上述式子的數(shù)學(xué)問題均可以用遞歸來實現(xiàn),在遞歸函數(shù)中一般可采用雙分支語句來實現(xiàn):if(遞歸結(jié)束條件)return(遞歸終止值);elsereturn(遞歸計算公式);5.2典型實例練能力
5.2.1典型實例一:求孿生質(zhì)數(shù)
【實例題目】
編寫程序求出100之內(nèi)的所有孿生質(zhì)數(shù),所謂孿生質(zhì)數(shù)是指兩個質(zhì)數(shù),它們的差為2,如5和7、11和13等都是孿生質(zhì)數(shù)。要求:判斷某數(shù)是否為質(zhì)數(shù)要用一個方法來實現(xiàn),編寫成Windows應(yīng)用程序。程序的設(shè)計界面如圖5-5所示,程序的運行界面如圖5-6所示。
圖5-5程序設(shè)計界面
圖5-6程序運行界面
5.2.2典型實例二:校園歌手評分
【實例題目】
某學(xué)校要舉辦校園歌手大獎賽,現(xiàn)在要讓計算機為選手評分,評分原則為:從若干個評委的打分中去掉一個最低分去掉一個最高分,剩下的得分取平均即是選手的得分。要求:根據(jù)評委的打分求出選手的得分需編寫成一個方法,要求編寫成Windows應(yīng)用程序。程序的設(shè)計界面如圖5-7所示,程序的運行界面如圖5
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 簡易機械購買合同范例
- 2025套房裝修合同書
- 學(xué)校消毒合同范例
- 店面轉(zhuǎn)租合同范例范例
- 賣榴蓮合同范例
- 碎石合同范例
- 商場演員合同范例
- 生態(tài)停車場建設(shè)合同范例
- 石材供貨單方合同范例
- 2025賠償協(xié)議合同保證承諾書
- 蘇教版小學(xué)四年級上冊數(shù)學(xué)期末試卷及參考答案【完整版】
- 2024年高中英語衡水體書法練字字帖
- 江蘇開放大學(xué)專科行政管理專業(yè)050004行政管理學(xué)期末試卷
- 安徽省某中學(xué)2023-2024學(xué)年高一年級下冊第三次階段檢測英語試題 含解析
- 2024年貴陽南明投資(集團)有限責(zé)任公司招聘筆試沖刺題(帶答案解析)
- 2021利達JB-QG-LD988EL JB-QT-LD988EL 火災(zāi)報警控制器 消防聯(lián)動控制器調(diào)試手冊
- 兒童文學(xué)概論(第二版) 課件 第3、4章 中國兒童文學(xué)概述、外國兒童文學(xué)概述
- 2024年度思政課一體化建設(shè)活動方案
- 全國交管12123駕駛證學(xué)法減分試題和答案(50題完整版)499
- 部編版三年級語文上冊期末測試卷(匯編)
- 中華法文化的制度解讀智慧樹知到期末考試答案章節(jié)答案2024年西華大學(xué)
評論
0/150
提交評論