版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第六章結(jié)構(gòu)化程序設(shè)計(jì)1.方法的定義與調(diào)用2.
方法的定義與調(diào)用
方法用于封裝一段特定的邏輯功能,如:執(zhí)行計(jì)算或操作;方法可以在程序中反復(fù)被調(diào)用,可以減少代碼重復(fù),便于程序的維護(hù)。定義方法五個(gè)要素:修飾符、返回值類型、方法名、參數(shù)列表、方法體。Java語言中方法定義的語法格式如下:<修飾符><返回值類型><方法名>([參數(shù)類型參數(shù)名],...){
//方法體代碼}方法的定義
3.
方法的定義與調(diào)用
publicclassMethodDemo{ publicstaticvoidmain(String[]args){ }
//定義無方法返回值,無參數(shù)
voidsay(){}
//定義無返回值有參數(shù)的方法
voidprint(Stringname){}
//定義有返回值有參數(shù)的方法
intsum(intnum1,intnum2){ returnnum1+num2;
}}4.方法定義時(shí)需要注意以下語法要求:1.方法在聲明時(shí)必須指定返回值的類型。若方法不需要返回?cái)?shù)據(jù),將返回值類型聲明為void。若方法需要返回?cái)?shù)據(jù),將返回值類型聲明為特定數(shù)據(jù)類型,通過return語句結(jié)束方法且將數(shù)據(jù)返回給調(diào)用方。2.如果我們想在main方法中直接調(diào)用A方法,則A方法必須聲明為static。3.方法的參數(shù)是指:在調(diào)用時(shí)傳遞給方法,需要被方法處理的數(shù)據(jù)。
方法的定義與調(diào)用
5.
方法的定義與調(diào)用
方法的調(diào)用
程序執(zhí)行的入口是從主方法開始一行一行開始執(zhí)行,自定義的方法不會(huì)自動(dòng)執(zhí)行,需要通過主方法調(diào)用才會(huì)執(zhí)行。方法調(diào)用的語法如下:方法名([參數(shù)1],...);6.
方法的定義與調(diào)用
方法調(diào)用時(shí)需要注意以下語法現(xiàn)象:1.方法調(diào)用時(shí),傳給被調(diào)用方法的實(shí)參類型需要和方法定義的形參類型匹配。
定義方法:publicstaticintsum(intnum1,intnum2){…………}publicstaticvoidsayHi(Stringname){…………}調(diào)用方法:intresult=sum(5,6);sayHi(“張三”);2.方法調(diào)用語句所處的上下文環(huán)境要和方法定義的返回值類型匹配。3.如果在主方法中直接調(diào)用自定義方法,方法需要關(guān)鍵字static修飾7.方法的調(diào)用分析8.
方法的調(diào)用分析
publicstaticvoidmain(String[]args){inta=10,b=20;
swap(a,b);System.out.println(a+""+b);}publicstaticvoidswap(inta,intb){inttemp=a;a=b;b=temp;}9.
方法的調(diào)用分析
主方法調(diào)用方法前的初始狀態(tài),main方法的臨時(shí)空間中存儲(chǔ)publicstaticvoidmain(String[]args){
inta=10,b=20;swap(a,b);System.out.println(a+""+b);}publicstaticvoidswap(inta,intb){inttemp=a;a=b;b=temp;}10.
方法的調(diào)用分析
主方法調(diào)用swap方法,并將實(shí)參的值傳遞給形參publicstaticvoidmain(String[]args){
inta=10,b=20;
swap(a,b);System.out.println(a+""+b);}publicstaticvoidswap(inta,intb){inttemp=a;a=b;b=temp;}11.
方法的調(diào)用分析
swap方法中兩個(gè)形參的值交換,這種交換不會(huì)影響到main方法中的實(shí)參值publicstaticvoidmain(String[]args){inta=10,b=20;swap(a,b);System.out.println(a+""+b);}publicstaticvoidswap(inta,intb){
inttemp=a;a=b;b=temp;}12.
方法的調(diào)用分析
swap方法調(diào)用結(jié)束,臨時(shí)存儲(chǔ)空間被釋放,程序流程回到main方法,main方法中的變量值并沒有改變publicstaticvoidmain(String[]args){inta=10,b=20;swap(a,b);System.out.println(a+""+b);}publicstaticvoidswap(inta,intb){inttemp=a;a=b;b=temp;}13.
方法的調(diào)用分析
方法調(diào)用的過程分析1.系統(tǒng)會(huì)在??臻g中為方法分配臨時(shí)存儲(chǔ)空間,并為方法的形參與局部變量分配空間。2.將實(shí)參的值傳給形參。3.程序流程跳到被調(diào)用方法中執(zhí)行。4.被調(diào)用方法執(zhí)行完成或遇到return語句,程序的流程跳回主調(diào)方法,并將return后的值帶回主調(diào)方法(如果有的話)。5.被調(diào)方法的臨時(shí)存儲(chǔ)空間釋放,程序流程從主調(diào)方法中繼續(xù)往下執(zhí)行。14.方法調(diào)用的特殊案例15.publicstaticvoidmain(String[]args){Students1=newStudent();Students2=newStudent();s1.setAge(10);s2.setAge(20);swap1(s1,s2);System.out.println(s1.getAge()+”:”+s2.getAge());swap2(s1,s2);System.out.println(s1.getAge()+”:”+s2.getAge());}publicstaticvoidswap1(Students1,Students2){Studenttemp=s1;s1=s2;s2=temp;}publicstaticvoidswap2(Students1,Students2){inttemp=s1.getAge();s1.setAge(s2.getAge());s2.setAge(temp);}s1s2Student對(duì)象2
age=20Student對(duì)象1
age=10mainswap1s1s2swap2s1s2temp=10age=20age=1016.成績(jī)統(tǒng)計(jì)程序17.
成績(jī)統(tǒng)計(jì)程序
現(xiàn)有M位學(xué)生的姓名保存在一維String數(shù)組中,有N門課程的名稱保存在一維String數(shù)組中,另有M×N的二維數(shù)組保存這M位學(xué)生的每門課程的成績(jī)數(shù)據(jù)保存結(jié)構(gòu)如下:學(xué)生名數(shù)組:{“張三豐”,”郭靖”,”喬峰”,”張無忌”,”楊過”}課程名數(shù)組:{”JAVA”,”C++”,”O(jiān)racle”,”Android”}成績(jī)數(shù)組:{
{87,76,63,98},
{67,79,83,75},
{90,76,65,60},
{84,88,63,79},
{72,66,58,77}
}案例描述18.
成績(jī)統(tǒng)計(jì)程序
編寫程序,使得用戶可以通過輸入如下控制臺(tái)命令來查詢學(xué)生的成績(jī):
AVG<課程名>:查詢某門課程的平均分。
SUM<學(xué)生名>:查詢某位學(xué)生的總分。
SORT<課程名>:按照某門課程的成績(jī)排序輸出。
GET<學(xué)生名><課程名>:查詢某位學(xué)生的某門課程的成績(jī)。案例描述19.
成績(jī)統(tǒng)計(jì)程序
該案例要求我們對(duì)多個(gè)關(guān)聯(lián)數(shù)組進(jìn)行操作,并且要求從控制臺(tái)讀入?yún)?shù)來控制程序的流程。我們可以定義以下方法來完成程序的功能:1.publicstaticdoubleavg(StringcName):該方法用來求課程平均分2.publicstaticdoublesum(StringuName):該方法用來求學(xué)員成績(jī)總分3.publicstaticvoidsort(Stringname):該方法用來對(duì)成績(jī)排序4.publicstaticdoubleget(StringuName,StringcName):該方法用來得到某位學(xué)員某門課程的成績(jī)20.酒店前臺(tái)管理程序21.
酒店前臺(tái)管理程序
某酒店有12層樓,每層樓有10個(gè)房間,要求為該酒店設(shè)計(jì)一套簡(jiǎn)單的前臺(tái)房間管理程序,該程序可以通過在命令行輸入命令來為客人辦理入住和退房手續(xù)。要求程序通過命令行輸入以下命令來進(jìn)行入住、退房及查詢的操作:SEARCH:查詢所有房間的狀態(tài)IN1202zhangsan:姓名為zhangsan的客人入住1202房間OUT1202:1202房間退房EXIT:退出程序案例描述22.
酒店前臺(tái)管理程序
該案例程序是一個(gè)簡(jiǎn)單的數(shù)組操作問題:
創(chuàng)建一個(gè)12*10的二維數(shù)組來模擬整棟大樓,數(shù)組中的每個(gè)元素就是每個(gè)房間。元素定義為String類型,若該房間有客人入住,則保存客人姓名;若該房間沒有客人入住,則保存“EMPTY”。使用while(true)循環(huán)來不停的從控制臺(tái)讀入命令,每讀到一行命令,先解析命令的格式,然后分別調(diào)用不同的方法完成不同的操作。若命令為“EXIT”,則執(zhí)行break語句,強(qiáng)制退出程序。案例分析23.計(jì)算一手撲克牌的級(jí)別24.
計(jì)算一手撲克牌的級(jí)別
砸金花游戲中一手撲克牌是3張,根據(jù)這3張牌的點(diǎn)數(shù)和花色不同,一手撲克牌分為以下6個(gè)級(jí)別:案例描述名稱編碼描述舉例三條6三張牌的點(diǎn)數(shù)相同紅桃K,梅花K,方塊K同花順5三張牌花色相同,并且點(diǎn)數(shù)連續(xù)紅桃10,紅桃J,紅桃Q同花4三張牌花色相同梅花8,梅花J,梅花K順子3三張牌點(diǎn)數(shù)連續(xù),但花色不同紅桃8,紅桃9,梅花10對(duì)子2三張牌中有兩張牌點(diǎn)數(shù)相同梅花8,紅桃8,方塊K單牌1不是以上所有情況紅桃K,梅花6,梅花525.
計(jì)算一手撲克牌的級(jí)別
要求編寫程序,對(duì)于任意給定的一手牌(3張),判斷這一手牌是以上哪個(gè)級(jí)別的牌。程序要求實(shí)現(xiàn)以下方法:publicstaticintgetLevel(int[]cards);
該方法的參數(shù)說明:int[]cards:一手牌,3張撲克牌的數(shù)組,每一張撲克牌用一個(gè)int值表示。
返回值說明:返回這一手牌的級(jí)別編碼案例描述26.
計(jì)算一手撲克牌的級(jí)別
一張撲克牌可以用一個(gè)三位整數(shù)進(jìn)行表示,百位表示撲克牌的花色,十位和個(gè)位表示撲克牌的大小(點(diǎn)數(shù))
案例分析27.
把每張撲克牌的大小和花色分開,可以利用字符串的截取方法進(jìn)行獲取,其步驟如下:1.得到每張撲克牌2.得到每張撲克牌大小3.得到每張撲克牌的花色4.對(duì)三張撲克牌大小進(jìn)行排序創(chuàng)建一個(gè)數(shù)組cards1保存三張撲克牌的大小,將這三張牌添加到數(shù)組cards1中,將數(shù)組進(jìn)行排序,得到排序后的大小。5.根據(jù)花色和排序后的撲克牌大小就可以分類判斷出撲克牌的等級(jí)。
計(jì)算一手撲克牌的級(jí)別
案例分析28.掃雷游戲的遞歸排雷程序29.
掃雷游戲的遞歸排雷程序
122-121-12-144-1233-1-13-122-15-1-1322-132-1112-130.
掃雷游戲的遞歸排雷程序
本案例要求編寫程序,根據(jù)用戶輸入的坐標(biāo)值,將該坐標(biāo)位置排開.31.
掃雷游戲的遞歸排雷程序
122-121-12-144-1233-1-13-122-15-1-1322-132-1112-1如果該位置是地雷(值為-1),則輸出排雷失敗32.
掃雷游戲的遞歸排雷程序
122-121-12-144-1233
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廣州市民政局直屬事業(yè)單位第一次公開招聘工作人員25人備考題庫及完整答案詳解一套
- 中國(guó)電子備考題庫產(chǎn)業(yè)發(fā)展研究院2026年度公開招聘高校畢業(yè)生40人備考題庫完整答案詳解
- 城建投資合同范本
- 坑爹公會(huì)合同范本
- 基油機(jī)發(fā)電協(xié)議書
- 拆樓頂大字協(xié)議書
- 就業(yè)空白協(xié)議書
- 換房合同協(xié)議范本
- 接稿收款合同范本
- 攪拌車安全協(xié)議書
- 2025年廣東省第一次普通高中學(xué)業(yè)水平合格性考試(春季高考)英語試題(含答案詳解)
- 2026年合同全生命周期管理培訓(xùn)課件與風(fēng)險(xiǎn)防控手冊(cè)
- 特殊兒童溝通技巧培訓(xùn)
- 中國(guó)馬克思主義與當(dāng)代2024版教材課后思考題答案
- 2026年日歷表(每月一頁、可編輯、可備注)
- 國(guó)家開放大學(xué)一網(wǎng)一平臺(tái)電大《建筑測(cè)量》實(shí)驗(yàn)報(bào)告1-5題庫
- 品質(zhì)異常通知單
- 鼎捷T100-V1.0-總賬管理用戶手冊(cè)-簡(jiǎn)體
- GB 31644-2018食品安全國(guó)家標(biāo)準(zhǔn)復(fù)合調(diào)味料
- 援疆工作調(diào)研報(bào)告
- 機(jī)車-受電弓碳滑板磨耗檢測(cè)
評(píng)論
0/150
提交評(píng)論