




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
類和對象(二)第五章回顧與作業點評類和對象的關系是什么?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實現輸出學生信息,下面代碼有哪些錯誤?提問代碼閱讀預習檢查類的方法由哪幾部分組成?成員變量和局部變量的區別有哪些?調用帶參方法時,有哪些注意事項?3/38提問本章目標會定義和使用類的方法理解變量作用域會定義帶參方法會使用帶參方法4/38類的方法寫出獅子對象的“跑”方法、“叫”方法5/38電動玩具獅子屬性:顏色:黃色行為:跑叫按此按鈕,獅子開始叫按此按鈕,獅子開始跑問題類的方法示例AutoLion類代碼實現6/38publicclassAutoLion{Stringcolor="黃色";
public
void
run(){Console.WriteLine("正在以0.1米/秒的速度向前奔跑");}
public
String
bark(){Stringsound="大聲吼叫";
returnsound;}}方法體返回值類型方法名稱示例如何定義類的方法類的方法定義類的某種行為(或功能)7/38定義類的方法public
返回值類型方法名(){//這里編寫方法的主體}步驟一:定義方法名以及返回值類型步驟二:編寫方法體語法方法的定義方法的名稱方法的主體方法返回值的數據類型方法的返回值兩種情況如果方法具有返回值,方法中必須使用關鍵字return返回該值,返回值類型為該返回值的類型如果方法沒有返回值,返回值類型為void8/38publicclassStudent{Stringname="張三";publicStringgetName(){
returnname;}//……}return表達式;作用:跳出方法、返回結果語法publicclassStudent{Stringname="張三";publicvoidgetName(){
}//……}方法調用方法是個“黑匣子”,完成某個特定的應用程序功能,并返回結果方法調用:執行方法中包含的語句
9/38對象名.方法名();小明過生日,爸爸送他一個電動獅子玩具,編程測試這個獅子能否正常工作語法問題方法調用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());}}在類的方法中調用該類另一個方法在main()方法中調用類的方法演示示例1:定義并調用獅子類的方法方法調用小結方法之間允許相互調用,不需要知道方法的具體實現,實現重用,提高效率
11/38情況舉例Student類的方法a()調用Student類的方法b(),直接調用publicvoida(){b();//調用b()}Student類的方法a()調用Teacher類的方法b(),先創建類對象,然后使用“.”調用publicvoida(){Teachert=newTeacher();
t.b();//調用Teacher類的b()}publicclassStudent1{ publicvoidshowInfo(){ return"我是一名學生"; }}方法的返回值類型為void,方法中不能有return返回值!常見錯誤4-112/38代碼閱讀注意publicclassStudent2{ publicdoublegetInfo(){ doubleweight=95.5; doubleheight=1.69; returnweight,height; }}方法不能返回多個值!常見錯誤4-213/38代碼閱讀注意publicclassStudent3{ publicStringshowInfo(){ return"我是一名學生"; publicdoublegetInfo(){ doubleweight=95.5; doubleheight=1.69; returnweight; } }}多個方法不能相互嵌套定義!常見錯誤4-314/38publicclassStudent3{ publicStringshowInfo(){ return"我是一名學生"; } publicdoublegetInfo(){ doubleweight=95.5;doubleheight=1.69; returnweight; }}代碼閱讀注意publicclassStudent4{ intage=20; if(age<20){ Console.WriteLine("年齡不符合入學要求!"); } publicvoidshowInfo(){ return"我是一名學生"; }}不能在方法外部直接寫程序邏輯代碼!常見錯誤4-415/38代碼閱讀注意小結編寫電池類(Cell):具有品牌屬性,可以續電編寫測試類(TestCell)16/38現場編程電池類屬性:品牌行為:續電學員操作——計算平均分和總成績2-1
訓練要點方法的定義和調用需求說明從鍵盤接收三門課分數,計算三門課的平均分和總成績,編寫成績計算類實現功能17/38指導講解需求說明學員操作——計算平均分和總成績2-2實現思路1.創建類ScoreCalc2.編寫方法實現各功能3.編寫測試類難點指導面向對象編程思維18/38完成時間:25分鐘指導成員變量和局部變量2-1變量聲明的位置決定變量作用域變量作用域確定可在程序中按變量名訪問該變量的區域19/38//…for(inta=0;a<4;a++){Console.WriteLine("hello");}Console.WriteLine(a);//…代碼錯誤a的作用域僅在for循環中成員變量和局部變量2-2誰能使用這些變量?20/38變量1類型變量1;變量2類型變量2;變量3類型變量3;public返回類型方法1(){
變量4類型變量4;}public返回類型方法2(){
變量5類型變量5;}publicclassAutoLion{}AutoLion類的方法,其他類的方法方法1方法2成員變量局部變量局部變量問題成員變量和局部變量的區別作用域不同局部變量的作用域僅限于定義它的方法成員變量的作用域在整個類內部都是可見的初始值不同.Net會給成員變量一個初始值.Net不會給局部變量賦予初始值21/38在同一個類中,成員變量和局部變量同名時,局部變量具有更高的優先級在同一個方法中,不允許有同名局部變量在不同的方法中,可以有同名局部變量注意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);}面向對象的編程(OOP)ScoreCalc類和
Test類23/38calcDiffTimecalcTotalScore()ScoreCalcshowTotalScore()calcAvg()showAvg()
main(){//程序入口
//計算并輸出總成績
//計算并輸出平均分
}Test調用調用類的方法實現某個特定的功能,其他類不需要知道它如何實現,調用方法就可以了,不用重復寫代碼!
如果還要再執行這個功能,難道還要重復再寫一遍?小結編寫手機類(Phone)可以下載音樂,可以播放這些音樂,可以進行充電重用電池類方法(Cell)編寫測試類(TestPhone)24/38現場編程手機類行為:播放下載的音樂下載充電電池類屬性:品牌行為:續電為什么要用帶參數的方法工作原理新鮮桃汁新鮮蘋果汁新鮮梨汁輸出三種果汁25/40如何使用帶參數的方法3-1定義帶參數的方法調用帶參數的方法publicclassZhazhiJi{
publicStringzhazhi(Stringfruit){Stringjuice=fruit+"汁";returnjuice;}}/*調用zhazhi方法*/ZhazhiJimyZhazhiji=newZhazhiJi();StringmyFruit="蘋果";StringmyJuice=myZhazhi.zhazhi(myFruit);Console.WriteLine(myJuice);參數列表:(數據類型參數1,數據類型參數2…)調用方法,傳遞的參數要與參數列表一一對應26/40如何使用帶參數的方法3-2<訪問修飾符>返回類型<方法名>(<形式參數列表>){ //方法的主體}該方法允許被訪問調用的權限范圍方法返回值的類型publicclassStudentsBiz{ String[]names=newString[30];
publicvoidaddName(Stringname){
//增加學生姓名
} publicvoidshowNames(){//顯示全部學生姓名 }}傳送給方法的形參列表一個形式參數沒有返回值語法示例定義帶參數的方法27/40如何使用帶參數的方法3-3publicstaticvoidmain(String[]args){
StudentsBizst=newStudentsBiz();for(inti=0;i<5;i++){Console.Write("請輸入學生姓名:");StringnewName=Console.ReadLine();
st.addName(newName);}st.showNames();
}實參的類型、數量、順序都要與形參一一對應先實例化對象,再使用方法調用帶參數的方法對象名.方法名(參數1,參數2,……,參數n)實參列表演示示例1:帶一個參數的方法語法示例28/40帶多個參數的方法2-1設計方法,通過傳遞三個參數(開始位置、結束位置、查找的姓名)來實現在保存了多個學生姓名的數組中,指定查找區間,查找某個學生姓名并顯示是否查找成功問題分析29/40
publicboolsearchName
(intstart,intend,Stringname){ boolfind=false;//是否找到標識 //指定區間數組中,查找姓名 for(inti=start-1;i<end;i++){
if(names[i].equals(name)){
find=true;
break;
} } returnfind;}返回值類型帶有三個形參返回結果:bool類型帶多個參數的方法2-2if(st.searchName(s,e,name)){ Console.WriteLine("找到了!");}else{ Console.WriteLine("沒找到該學生!");}傳遞三個實參演示示例2:帶多個參數的方法示例30/40//方法定義publicvoidaddName(Stringname){ //方法體}//方法調用對象名.addName(String"張三");調用方法時不能指定實參類型!常見錯誤4-1對象名.addName("張三");代碼閱讀注意31/40//方法定義publicboolsearchName(intstart,intend,Stringname){ //方法體}//方法調用Strings="開始";inte=3;Stringname="張三";boolflag=對象名.searchName(s,e,name);形參和實參數據類型不一致!常見錯誤4-2代碼閱讀注意32/40//方法定義publicboolsearchName(intstart,intend,Stringname){ //方法體}//方法調用ints=1;inte=3;boolflag=對象名.searchName(s,e);形參和實參數量不一致!常見錯誤4-3代碼閱讀注意33/40//方法定義publicboolsearchName(intstart,intend,Stringname){ //方法體}//方法調用ints=1;inte=3;Stringname="張三";對象名.searchName(s,e,name);調用方法后沒有對返回值作任何處理!常見錯誤4-4代碼閱讀注意34/40學員操作——客戶姓名添加和顯示2-1訓練要點帶參方法的定義帶參方法的調用需求說明創建客戶業務類,實現客戶姓名的添加和顯示指導講解需求說明35/40學員操作——客戶姓名添加和顯示2-2實現思路1.創建CustomerBiz類2.創建帶參方法addName(Stringname)3.創建方法showNames()4.創建測試類難點指導創建無返回值的帶參方法完成時間:20分鐘指導36/40學員操作——修改客戶姓名需求說明修改學生姓名,輸入新、舊姓名,進行修改并顯示是否修改成功完成時間:20分鐘練習提示定義方法publicbooleditName(StringoldName,StringnewName)37/40數組作為參數的方法2-1將5位學員的決賽成績保存在數組中設計求平均成績、最高成績的方法,并把數組作為參數有5位學員參加了.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;}返回值類型數組作為參數的方法2-2演示示例3:數組作為參數示例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);數組參數調用方法39/40對象作為參數的方法2-1方式一:設計帶四個參數(學號、姓名、年齡、成績)的方法方式二:將學生學號、姓名、年齡、成績封裝在學生對象中,設計方法,以學生對象作為參數在實現了增加一個學生姓名的基礎上,增加學生的學號、年齡和成績,并顯示這些信息,如何實現?問題分析可以將多個相關的信息封裝成對象,作為參數傳遞,避免方法有太多的參數!經驗40/40classStudent{
publicintid;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 游戲行業綠色發展與環保技術考核試卷
- 人性化指導2025年證券從業資格證考試試題及答案
- 理解注冊會計師考試的重要性與試題及答案
- 2025年【工具鉗工(高級)】模擬考試題及答案
- 2024年項目管理考試提升指南試題及答案
- 2023年中國葛洲壩三峽建設工程有限公司成熟人才招聘若干人筆試參考題庫附帶答案詳解
- 污水處理中的低溫脫氮技術與應用考核試卷
- 橡膠管材在工業通風系統的消聲性能考核試卷
- 行政管理研究的現狀與展望試題及答案
- 管道工程行業綠色技術創新考核試卷
- 2024年秋兒童發展問題的咨詢與輔導終考期末大作業案例分析1-5答案
- 新產品試產管理程序
- 錨索抗滑樁畢業設計(湖南工程學院)
- 各國關于數據與個人隱私的法律規定
- 人教版(PEP)五年級英語下冊(U1-U4)單元專題訓練(含答案)
- 維生素K2行業研究、市場現狀及未來發展趨勢(2020-2026)
- 定遠縣蔡橋水庫在建工程實施方案
- 繪本故事《三只小豬蓋房子》課件
- GB 13296-2013 鍋爐、熱交換器用不銹鋼無縫鋼管(高清版)
- 部編版八年級語文下冊寫作《學寫讀后感》精美課件
- LED顯示屏項目立項報告(模板參考)
評論
0/150
提交評論