第3章-方法、局部變量和成員變量_第1頁
第3章-方法、局部變量和成員變量_第2頁
第3章-方法、局部變量和成員變量_第3頁
第3章-方法、局部變量和成員變量_第4頁
第3章-方法、局部變量和成員變量_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第3章類與對(duì)象(成員方法、變量)類和對(duì)象的區(qū)別是什么?數(shù)據(jù)類型有哪兩類?如何使用?publicclass&Student{Stringname;charsex;intage;publicStringtostring(){returnname+"\t"+sex+"\t"+age;}publicstaticvoidmain(String[]args){

Studentstu=newStudent();name="神仙姐姐";

sex='F';

age=18;

System.out.println(stu);

}}StudenttoStringstu.sexstu.age實(shí)現(xiàn)輸出學(xué)生信息,下面代碼有哪些錯(cuò)誤?回顧與作業(yè)點(diǎn)評(píng)會(huì)定義和使用類的方法理解變量作用域本章目標(biāo)類的方法1、寫出獅子對(duì)象的“跑”方法、“叫”方法電動(dòng)玩具獅子屬性:顏色:黃色行為:跑叫按此按鈕,獅子開始叫按此按鈕,獅子開始跑類的方法示例publicclassAutoLion{Stringcolor="黃色";

public

void

run(){System.out.println("正在以0.1米/秒的速度向前奔跑");

}

public

String

bark(){Stringsound="大聲吼叫";

returnsound;}}AutoLion類代碼實(shí)現(xiàn)方法體返回類型演示示例1:定義類的方法方法名稱如何定義類的方法類的方法定義類的某種行為(或功能)方法的定義方法的名稱方法的主體方法返回的數(shù)據(jù)類型定義類的方法public返回值類型方法名(){

//這里編寫方法的主體}步驟一:定義方法名以及返回值步驟二:編寫方法體方法的返回值兩種情況如果方法具有返回值,方法中必須使用關(guān)鍵字return返回該值,返回類型為該返回值的類型如果方法沒有返回值,返回類型為voidpublicclassStudent{Stringname="張三";publicvoidgetName(){

returnname;}……}返回類型要匹配return表達(dá)式;編譯錯(cuò)誤作用:跳出方法給出結(jié)果方法調(diào)用方法是個(gè)“黑匣子”,完成某個(gè)特定的應(yīng)用程序功能,并返回結(jié)果方法調(diào)用:執(zhí)行方法中包含的語句

對(duì)象名.方法名();2、小明過生日,爸爸送他一個(gè)電動(dòng)獅子玩具,編程測(cè)試這個(gè)獅子能否正常工作

方法調(diào)用publicclassAutoLion{Stringcolor="黃色";//顏色

/*跑*/

publicvoidrun(){

System.out.println("正在以0.1米/秒的速度向前奔跑。");

}

/*叫*/

publicStringbark(){

Stringsound="大聲吼叫";

returnsound;

}

/*獲得顏色*/

publicStringgetColor(){returncolor;}/*顯示獅子特性*/

publicStringshowLion(){return"這是一個(gè)"+getColor()+"的玩具獅子!";

}}publicclassTestLion{

publicstaticvoidmain(String[]args){AutoLionlion=newAutoLion();System.out.println(lion.showLion());lion.run();System.out.println(lion.bark());}}在類的方法中調(diào)用該類另一個(gè)方法演示示例2:方法調(diào)用在main()方法中調(diào)用類的方法方法調(diào)用小結(jié)方法之間允許相互調(diào)用,不需要知道方法的具體實(shí)現(xiàn),提高了效率

情況

舉例Student類的方法a()調(diào)用Student類的方法b(),直接調(diào)用publicvoida(){b();//調(diào)用b()}Student類的方法a()調(diào)用Teacher類的方法b(),先創(chuàng)建類對(duì)象,然后使用“.”調(diào)用publicvoida(){Teachert=newTeacher();t.b();//調(diào)用Teacher類的b()}publicclassStudent{ publicvoidshowInfo(){ return"我是一名學(xué)生";

}}方法的返回類型為void,方法中不能有return返回值!常見錯(cuò)誤4-1publicclassStudent{ publicdoublegetInfo(){ doubleweight=95.5; doubleheight=1.69; returnweight,height; }}方法不能返回多個(gè)值!常見錯(cuò)誤4-2publicclassStudent{ publicStringshowInfo(){ return"我是一名學(xué)生";

publicdoublegetInfo(){

doubleweight=95.5;

doubleheight=1.69;

returnweight;

}

}}多個(gè)方法不能相互嵌套定義!常見錯(cuò)誤4-3publicclassStudent{ publicStringshowInfo(){ return"我是一名學(xué)生";

}

publicdoublegetInfo(){ doubleweight=95.5; doubleheight=1.69; returnweight; }}publicclassStudent{ intage=20; if(age<20){ System.out.println("年齡不符合入學(xué)要求!");

}

publicvoidshowInfo(){ return"我是一名學(xué)生";

}}不能在方法外部直接寫程序邏輯代碼!常見錯(cuò)誤4-4為什么要用帶參數(shù)的方法工作原理新鮮桃汁新鮮蘋果汁新鮮梨汁輸出三種果汁如何使用帶參數(shù)的方法3-1定義帶參數(shù)的方法調(diào)用帶參數(shù)的方法publicclassZhazhi{

publicStringzhazhi(Stringfruit){Stringjuice=fruit+"汁";

returnjuice;

}}/*調(diào)用zhazhi方法*/ZhazhimyZhazhi=newZhazhi();StringmyFruit="蘋果";StringmyJuice=myZhazhi.zhazhi(myFruit);System.out.println(myJuice);參數(shù)列表:(數(shù)據(jù)類型參數(shù)1,數(shù)據(jù)類型參數(shù)2…)調(diào)用方法,傳遞的參數(shù)要與參數(shù)列表一一對(duì)應(yīng)如何使用帶參數(shù)的方法3-2<訪問修飾符>返回類型<方法名>(<形式參數(shù)列表>){

//方法的主體}該方法允許被訪問調(diào)用的權(quán)限范圍方法返回值的類型publicclassStudentsBiz{ String[]names=newString[30];

publicvoidaddName(Stringname){

//增加學(xué)生姓名

} publicvoidshowNames(){

//顯示全部學(xué)生姓名

}}傳送給方法的形參列表一個(gè)形式參數(shù)沒有返回值如何使用帶參數(shù)的方法3-3publicstaticvoidmain(String[]args){

StudentsBizst=newStudentsBiz();Scannerinput=newScanner(System.in);for(inti=0;i<5;i++){System.out.print("請(qǐng)輸入學(xué)生姓名:");

StringnewName=input.next();

st.addName(newName);}st.showNames();

}實(shí)參的類型、數(shù)量、順序都要與形參一一對(duì)應(yīng)先實(shí)例化對(duì)象,再使用方法演示示例1:帶一個(gè)參數(shù)的方法調(diào)用帶參數(shù)的方法對(duì)象名.方法名(實(shí)參1,實(shí)參2,……,實(shí)參n)實(shí)參列表//方法定義publicvoidaddName(Stringname){ //方法體}//方法調(diào)用對(duì)象名.addName(String"張三");調(diào)用方法時(shí)不能指定實(shí)參類型!常見錯(cuò)誤4-1對(duì)象名.addName("張三");//方法定義publicbooleansearchName(intstart,intend,Stringname){ //方法體}//方法調(diào)用Strings="開始";inte=3;Stringname="張三";booleanflag=對(duì)象名.searchName(s,e,name);形參和實(shí)參數(shù)據(jù)類型不一致!常見錯(cuò)誤4-2//方法定義publicbooleansearchName(intstart,intend,Stringname){ //方法體}//方法調(diào)用ints=1;inte=3;booleanflag=對(duì)象名.searchName(s,e);形參和實(shí)參數(shù)量不一致!常見錯(cuò)誤4-3//方法定義publicbooleansearchName(intstart,intend,Stringname){ //方法體}//方法調(diào)用ints=1;inte=3;Stringname="張三";對(duì)象名.searchName(s,e,name);調(diào)用方法后沒有對(duì)返回值作任何處理!常見錯(cuò)誤4-4成員變量和局部變量2-1變量聲明的位置決定變量作用域變量作用域確定可在程序中按變量名訪問該變量的區(qū)域…for(inti=0,a=0;i<4;i++){a++;}System.out.println(a);…代碼錯(cuò)誤a的作用域僅在for循環(huán)中成員變量和局部變量2-2變量1類型變量1;變量2類型變量2;變量3類型變量3;public返回類型方法1(){

變量4類型變量4;}public返回類型方法2(){

變量5類型變量5;}publicclassAutoLion{}AutoLion類的方法,其他類的方法誰能使用這些變量?方法1方法2成員變量局部變量局部變量作用域不同局部變量的作用域僅限于定義它的方法成員變量的作用域在整個(gè)類內(nèi)部都是可見的初始值不同Java會(huì)給成員變量一個(gè)初始值Java不會(huì)給局部變量賦予初始值在同一個(gè)方法中,不允許有同名局部變量;在不同的方法中,可以有同名局部變量兩類變量同名時(shí),局部變量具有更高的優(yōu)先級(jí)成員變量和局部變量的區(qū)別常見錯(cuò)誤請(qǐng)指出下面代碼的錯(cuò)誤classDog{privateStringname="旺財(cái)";//昵稱privateinthealth=100;//健康值

privateintlove=0;//親密度

publicvoidplay(intn){intlocalv;health=health-n; System.out.println(name+""+localv+""+health+""+love);}publicstaticvoidmain(String[]args){Dogd=newDog();d.play(5);}}局部變量沒有初始化publicclassTest{intscore1=88;intscore2=98;publicvoidcalcAvg(){intavg=(score1+score2)/2;}publicvoidshowAvg(){System.out.println("平均分是:"+avg);

}}常見錯(cuò)誤局部變量avg的作用域僅限于calcAvg()方法靜態(tài)常量static可以用來修飾屬性、方法和代碼塊static修飾的屬性和方法稱為類屬性(類變量)、類方法不使用static修飾的屬性和方法,屬于單個(gè)對(duì)象,通常稱為實(shí)例屬性(實(shí)例變量)、實(shí)例方法static修飾的變量和方法可以通過類名和對(duì)象名訪問,而不用static修飾的變量和方法只能通過對(duì)象名訪問final可以用來修飾屬性、方法和類用final修飾的變量成為常量,其值固定不變Penguinpgn1=newPenguin();pgn1.sex=Penguin.SEX_MALE;classPenguin{staticfinalStringSEX_MALE="Q仔";

staticfinalStringSEX_FEMALE="Q妹";}Java中定義常量的語法staticvoidprint(){}用類名調(diào)用:Dog.print();使用static定義變量使用static定義方法演示示例:靜態(tài)常量可否這樣賦值?常見錯(cuò)誤請(qǐng)指出下面代碼的錯(cuò)誤classDog{privateStringname="旺財(cái)";//昵稱privateinthealth=100;//健康值

privateintlove=0;//親密度

publicvoidplay(intn){staticintlocalv=5; health=health-n; System.out.println(name+""+localv+""+health+""+love);} publicstaticvoidmain(String[]args){Dogd=newDog();d.play(5);}}在方法里不可以定義static變量

面向?qū)ο蟮木幊趟季SScoreCalc類和

Test類publ

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論