




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
類和對象(二)第五章回顧與作業(yè)點評類和對象的關(guān)系是什么?2/38publicclass&Student{Stringname;charsex;intage;publicStringtoString(){returnname+"\t"+sex+"\t"+age;}publicstaticvoidmain(String[]args){Studentstu=newStudent();name="神仙姐姐";sex='F';age=18;Console.WriteLine(stu);}}Studentstu.sexstu.age實現(xiàn)輸出學(xué)生信息,下面代碼有哪些錯誤?提問代碼閱讀預(yù)習(xí)檢查類的方法由哪幾部分組成?成員變量和局部變量的區(qū)別有哪些?調(diào)用帶參方法時,有哪些注意事項?3/38提問本章目標(biāo)會定義和使用類的方法理解變量作用域會定義帶參方法會使用帶參方法4/38類的方法寫出獅子對象的“跑”方法、“叫”方法5/38電動玩具獅子屬性:顏色:黃色行為:跑叫按此按鈕,獅子開始叫按此按鈕,獅子開始跑問題類的方法示例AutoLion類代碼實現(xiàn)6/38publicclassAutoLion{Stringcolor="黃色";
public
void
run(){Console.WriteLine("正在以0.1米/秒的速度向前奔跑");}
public
String
bark(){Stringsound="大聲吼叫";
returnsound;}}方法體返回值類型方法名稱示例如何定義類的方法類的方法定義類的某種行為(或功能)7/38定義類的方法public
返回值類型方法名(){//這里編寫方法的主體}步驟一:定義方法名以及返回值類型步驟二:編寫方法體語法方法的定義方法的名稱方法的主體方法返回值的數(shù)據(jù)類型方法的返回值兩種情況如果方法具有返回值,方法中必須使用關(guān)鍵字return返回該值,返回值類型為該返回值的類型如果方法沒有返回值,返回值類型為void8/38publicclassStudent{Stringname="張三";publicStringgetName(){
returnname;}//……}return表達(dá)式;作用:跳出方法、返回結(jié)果語法publicclassStudent{Stringname="張三";publicvoidgetName(){
}//……}方法調(diào)用方法是個“黑匣子”,完成某個特定的應(yīng)用程序功能,并返回結(jié)果方法調(diào)用:執(zhí)行方法中包含的語句
9/38對象名.方法名();小明過生日,爸爸送他一個電動獅子玩具,編程測試這個獅子能否正常工作語法問題方法調(diào)用10/38publicclassAutoLion{Stringcolor="黃色";//顏色
/*跑*/publicvoidrun(){Console.WriteLine("正在以0.1米/秒的速度向前奔跑。");}/*叫*/publicStringbark(){Stringsound="大聲吼叫";returnsound;}/*獲得顏色*/publicStringgetColor(){returncolor;}/*顯示獅子特性*/publicStringshowLion(){return"這是一個"+getColor()+"的玩具獅子!";}}publicclassTestLion{
publicstaticvoidmain(String[]args){AutoLionlion=newAutoLion();Console.WriteLine(lion.showLion());lion.run();Console.WriteLine(lion.bark());}}在類的方法中調(diào)用該類另一個方法在main()方法中調(diào)用類的方法演示示例1:定義并調(diào)用獅子類的方法方法調(diào)用小結(jié)方法之間允許相互調(diào)用,不需要知道方法的具體實現(xiàn),實現(xiàn)重用,提高效率
11/38情況舉例Student類的方法a()調(diào)用Student類的方法b(),直接調(diào)用publicvoida(){b();//調(diào)用b()}Student類的方法a()調(diào)用Teacher類的方法b(),先創(chuàng)建類對象,然后使用“.”調(diào)用publicvoida(){Teachert=newTeacher();
t.b();//調(diào)用Teacher類的b()}publicclassStudent1{ publicvoidshowInfo(){ return"我是一名學(xué)生"; }}方法的返回值類型為void,方法中不能有return返回值!常見錯誤4-112/38代碼閱讀注意publicclassStudent2{ publicdoublegetInfo(){ doubleweight=95.5; doubleheight=1.69; returnweight,height; }}方法不能返回多個值!常見錯誤4-213/38代碼閱讀注意publicclassStudent3{ publicStringshowInfo(){ return"我是一名學(xué)生"; publicdoublegetInfo(){ doubleweight=95.5; doubleheight=1.69; returnweight; } }}多個方法不能相互嵌套定義!常見錯誤4-314/38publicclassStudent3{ publicStringshowInfo(){ return"我是一名學(xué)生"; } publicdoublegetInfo(){ doubleweight=95.5;doubleheight=1.69; returnweight; }}代碼閱讀注意publicclassStudent4{ intage=20; if(age<20){ Console.WriteLine("年齡不符合入學(xué)要求!"); } publicvoidshowInfo(){ return"我是一名學(xué)生"; }}不能在方法外部直接寫程序邏輯代碼!常見錯誤4-415/38代碼閱讀注意小結(jié)編寫電池類(Cell):具有品牌屬性,可以續(xù)電編寫測試類(TestCell)16/38現(xiàn)場編程電池類屬性:品牌行為:續(xù)電學(xué)員操作——計算平均分和總成績2-1
訓(xùn)練要點方法的定義和調(diào)用需求說明從鍵盤接收三門課分?jǐn)?shù),計算三門課的平均分和總成績,編寫成績計算類實現(xiàn)功能17/38指導(dǎo)講解需求說明學(xué)員操作——計算平均分和總成績2-2實現(xiàn)思路1.創(chuàng)建類ScoreCalc2.編寫方法實現(xiàn)各功能3.編寫測試類難點指導(dǎo)面向?qū)ο缶幊趟季S18/38完成時間:25分鐘指導(dǎo)成員變量和局部變量2-1變量聲明的位置決定變量作用域變量作用域確定可在程序中按變量名訪問該變量的區(qū)域19/38//…for(inta=0;a<4;a++){Console.WriteLine("hello");}Console.WriteLine(a);//…代碼錯誤a的作用域僅在for循環(huán)中成員變量和局部變量2-2誰能使用這些變量?20/38變量1類型變量1;變量2類型變量2;變量3類型變量3;public返回類型方法1(){
變量4類型變量4;}public返回類型方法2(){
變量5類型變量5;}publicclassAutoLion{}AutoLion類的方法,其他類的方法方法1方法2成員變量局部變量局部變量問題成員變量和局部變量的區(qū)別作用域不同局部變量的作用域僅限于定義它的方法成員變量的作用域在整個類內(nèi)部都是可見的初始值不同.Net會給成員變量一個初始值.Net不會給局部變量賦予初始值21/38在同一個類中,成員變量和局部變量同名時,局部變量具有更高的優(yōu)先級在同一個方法中,不允許有同名局部變量在不同的方法中,可以有同名局部變量注意publicclassTest{intscore1=88;intscore2=98;publicvoidcalcAvg(){intavg=(score1+score2)/2;}publicvoidshowAvg(){Console.WriteLine("平均分是:"+avg);}}常見錯誤22/38局部變量avg的作用域僅限于calcAvg()方法代碼閱讀注意publicstaticvoidmain(String[]args){Console.Write("請輸入.Net成績:");int.Net=Convert.ToInt32(Console.ReadLine());//……/*計算并顯示輸出*/inttotal=.Net+c+db;doubleavg=total/3;Console.Write("總成績:"+total);Console.Write("\n平均分:"+avg);}面向?qū)ο蟮木幊蹋∣OP)ScoreCalc類和
Test類23/38calcDiffTimecalcTotalScore()ScoreCalcshowTotalScore()calcAvg()showAvg()
main(){//程序入口
//計算并輸出總成績
//計算并輸出平均分
}Test調(diào)用調(diào)用類的方法實現(xiàn)某個特定的功能,其他類不需要知道它如何實現(xiàn),調(diào)用方法就可以了,不用重復(fù)寫代碼!
如果還要再執(zhí)行這個功能,難道還要重復(fù)再寫一遍?小結(jié)編寫手機(jī)類(Phone)可以下載音樂,可以播放這些音樂,可以進(jìn)行充電重用電池類方法(Cell)編寫測試類(TestPhone)24/38現(xiàn)場編程手機(jī)類行為:播放下載的音樂下載充電電池類屬性:品牌行為:續(xù)電為什么要用帶參數(shù)的方法工作原理新鮮桃汁新鮮蘋果汁新鮮梨汁輸出三種果汁25/40如何使用帶參數(shù)的方法3-1定義帶參數(shù)的方法調(diào)用帶參數(shù)的方法publicclassZhazhiJi{
publicStringzhazhi(Stringfruit){Stringjuice=fruit+"汁";returnjuice;}}/*調(diào)用zhazhi方法*/ZhazhiJimyZhazhiji=newZhazhiJi();StringmyFruit="蘋果";StringmyJuice=myZhazhi.zhazhi(myFruit);Console.WriteLine(myJuice);參數(shù)列表:(數(shù)據(jù)類型參數(shù)1,數(shù)據(jù)類型參數(shù)2…)調(diào)用方法,傳遞的參數(shù)要與參數(shù)列表一一對應(yīng)26/40如何使用帶參數(shù)的方法3-2<訪問修飾符>返回類型<方法名>(<形式參數(shù)列表>){ //方法的主體}該方法允許被訪問調(diào)用的權(quán)限范圍方法返回值的類型publicclassStudentsBiz{ String[]names=newString[30];
publicvoidaddName(Stringname){
//增加學(xué)生姓名
} publicvoidshowNames(){//顯示全部學(xué)生姓名 }}傳送給方法的形參列表一個形式參數(shù)沒有返回值語法示例定義帶參數(shù)的方法27/40如何使用帶參數(shù)的方法3-3publicstaticvoidmain(String[]args){
StudentsBizst=newStudentsBiz();for(inti=0;i<5;i++){Console.Write("請輸入學(xué)生姓名:");StringnewName=Console.ReadLine();
st.addName(newName);}st.showNames();
}實參的類型、數(shù)量、順序都要與形參一一對應(yīng)先實例化對象,再使用方法調(diào)用帶參數(shù)的方法對象名.方法名(參數(shù)1,參數(shù)2,……,參數(shù)n)實參列表演示示例1:帶一個參數(shù)的方法語法示例28/40帶多個參數(shù)的方法2-1設(shè)計方法,通過傳遞三個參數(shù)(開始位置、結(jié)束位置、查找的姓名)來實現(xiàn)在保存了多個學(xué)生姓名的數(shù)組中,指定查找區(qū)間,查找某個學(xué)生姓名并顯示是否查找成功問題分析29/40
publicboolsearchName
(intstart,intend,Stringname){ boolfind=false;//是否找到標(biāo)識 //指定區(qū)間數(shù)組中,查找姓名 for(inti=start-1;i<end;i++){
if(names[i].equals(name)){
find=true;
break;
} } returnfind;}返回值類型帶有三個形參返回結(jié)果:bool類型帶多個參數(shù)的方法2-2if(st.searchName(s,e,name)){ Console.WriteLine("找到了!");}else{ Console.WriteLine("沒找到該學(xué)生!");}傳遞三個實參演示示例2:帶多個參數(shù)的方法示例30/40//方法定義publicvoidaddName(Stringname){ //方法體}//方法調(diào)用對象名.addName(String"張三");調(diào)用方法時不能指定實參類型!常見錯誤4-1對象名.addName("張三");代碼閱讀注意31/40//方法定義publicboolsearchName(intstart,intend,Stringname){ //方法體}//方法調(diào)用Strings="開始";inte=3;Stringname="張三";boolflag=對象名.searchName(s,e,name);形參和實參數(shù)據(jù)類型不一致!常見錯誤4-2代碼閱讀注意32/40//方法定義publicboolsearchName(intstart,intend,Stringname){ //方法體}//方法調(diào)用ints=1;inte=3;boolflag=對象名.searchName(s,e);形參和實參數(shù)量不一致!常見錯誤4-3代碼閱讀注意33/40//方法定義publicboolsearchName(intstart,intend,Stringname){ //方法體}//方法調(diào)用ints=1;inte=3;Stringname="張三";對象名.searchName(s,e,name);調(diào)用方法后沒有對返回值作任何處理!常見錯誤4-4代碼閱讀注意34/40學(xué)員操作——客戶姓名添加和顯示2-1訓(xùn)練要點帶參方法的定義帶參方法的調(diào)用需求說明創(chuàng)建客戶業(yè)務(wù)類,實現(xiàn)客戶姓名的添加和顯示指導(dǎo)講解需求說明35/40學(xué)員操作——客戶姓名添加和顯示2-2實現(xiàn)思路1.創(chuàng)建CustomerBiz類2.創(chuàng)建帶參方法addName(Stringname)3.創(chuàng)建方法showNames()4.創(chuàng)建測試類難點指導(dǎo)創(chuàng)建無返回值的帶參方法完成時間:20分鐘指導(dǎo)36/40學(xué)員操作——修改客戶姓名需求說明修改學(xué)生姓名,輸入新、舊姓名,進(jìn)行修改并顯示是否修改成功完成時間:20分鐘練習(xí)提示定義方法publicbooleditName(StringoldName,StringnewName)37/40數(shù)組作為參數(shù)的方法2-1將5位學(xué)員的決賽成績保存在數(shù)組中設(shè)計求平均成績、最高成績的方法,并把數(shù)組作為參數(shù)有5位學(xué)員參加了.Net知識競賽的決賽,輸出決賽的平均成績和最高成績問題分析38/40publicdoublecalAvg(int[]scores){intsum=0;doubleavg=0.0;for(inti=0;i<scores.length;i++){sum+=scores[i];}avg=(double)sum/scores.length;returnavg;}返回值類型數(shù)組作為參數(shù)的方法2-2演示示例3:數(shù)組作為參數(shù)示例publicintcalMax(int[]scores){intmax=scores[0];for(inti=1;i<scores.length;i++){if(max<scores[i]){max=scores[i];}}returnmax;}int[]scores=newint[5];//保存比賽成績//……doubleavgScore=st.calAvg(scores);intmaxScore=st.calMax(scores);數(shù)組參數(shù)調(diào)用方法39/40對象作為參數(shù)的方法2-1方式一:設(shè)計帶四個參數(shù)(學(xué)號、姓名、年齡、成績)的方法方式二:將學(xué)生學(xué)號、姓名、年齡、成績封裝在學(xué)生對象中,設(shè)計方法,以學(xué)生對象作為參數(shù)在實現(xiàn)了增加一個學(xué)生姓名的基礎(chǔ)上,增加學(xué)生的學(xué)號、年齡和成績,并顯示這些信息,如何實現(xiàn)?問題分析可以將多個相關(guān)的信息封裝成對象,作為參數(shù)傳遞,避免方法有太多的參數(shù)!經(jīng)驗40/40classStudent{
publicintid;
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 金融衍生品財產(chǎn)抵押合同
- 汽車4S店場地租賃及三方聯(lián)營管理協(xié)議
- 高端倉儲租賃與智能化物業(yè)管理服務(wù)協(xié)議
- 車輛維修與汽車租賃一體化承包協(xié)議
- 高端餐飲企業(yè)員工職業(yè)發(fā)展合同
- 餐館加盟店開業(yè)籌備合同參考
- 展會參展商現(xiàn)場活動策劃及執(zhí)行合同
- 高爾夫球場草坪維護(hù)與管理全面合作協(xié)議
- 拆除作業(yè)安全協(xié)議書范本
- 2025年酒店前臺工作總結(jié)
- GB/T 18981-2008射釘
- 質(zhì)量管理體系認(rèn)證審核活動常見問題的風(fēng)險控制解決方案 試題
- 青花瓷中國風(fēng)ppt
- 安全生產(chǎn)普法宣傳課件
- 22104銅及銅合金焊接施工工藝標(biāo)準(zhǔn)修改稿
- DB43-T 1991-2021油茶低產(chǎn)林改造技術(shù)規(guī)程
- 醫(yī)療器械包裝微生物屏障性能測試方法探討
- 柬埔寨各職能部門
- 項目管理之總師項目管理辦法
- TAPPI標(biāo)準(zhǔn)的代碼和內(nèi)容
- 海思芯片HTOL老化測試技術(shù)規(guī)范
評論
0/150
提交評論