Java講解方法總結(jié)計(jì)劃_第1頁(yè)
Java講解方法總結(jié)計(jì)劃_第2頁(yè)
Java講解方法總結(jié)計(jì)劃_第3頁(yè)
Java講解方法總結(jié)計(jì)劃_第4頁(yè)
Java講解方法總結(jié)計(jì)劃_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第五講方法Java講解方法總結(jié)計(jì)劃本章要點(diǎn)對(duì)方法的理解方法的聲明方法的調(diào)用參數(shù)的傳遞方法的重載遞歸與迭代Java講解方法總結(jié)計(jì)劃方法概述通過(guò)前面章節(jié)的程序結(jié)構(gòu)我們可以看到,對(duì)簡(jiǎn)單的問(wèn)題,程序比較簡(jiǎn)單,一個(gè)程序是一個(gè)類,在類中包含一個(gè)main()方法。但解決一些比較復(fù)雜的問(wèn)題時(shí),按照現(xiàn)代模塊化程序設(shè)計(jì)的思想,應(yīng)仔細(xì)分析問(wèn)題,善于將這些復(fù)雜問(wèn)題分解成若干個(gè)相對(duì)簡(jiǎn)單的問(wèn)題,即劃分成多個(gè)模塊。這樣,解決一個(gè)復(fù)雜問(wèn)題就轉(zhuǎn)化為一些簡(jiǎn)單的問(wèn)題。Java講解方法總結(jié)計(jì)劃方法概述JAVA中有兩種模塊:方法和類。借助JavaAPI和其他各種類庫(kù)中可用的、“預(yù)先打好包”的方法和類,我們可以編寫(xiě)出新的方法和類。在程序設(shè)計(jì)時(shí),可以將一個(gè)程序中完成特定功能的程序定義成方法(有時(shí)在其他編程語(yǔ)言中稱為函數(shù)或過(guò)程)。在需要使用這些功能時(shí),可調(diào)用相應(yīng)的方法,特別是在某些功能多次被使用時(shí),采用方法可大大地提高程序代碼的可重用性。Java講解方法總結(jié)計(jì)劃方法概述“方法”的目的:一是“分而治之”;二是軟件的重用;三是避免在程序中重復(fù)代碼。常用的Math類的方法和String類的方法Java講解方法總結(jié)計(jì)劃方法的聲明使用打印三個(gè)矩形的實(shí)例說(shuō)明方法的聲明方法聲明的一般格式為:[修飾符1修飾符2….]返回值類型函數(shù)名(參數(shù)類型形式參數(shù)1,參數(shù)類型形式參數(shù)2,….){程序代碼

[return返回值]}補(bǔ)充:聲明方法時(shí)使用的參數(shù)稱為形式參數(shù)(形參),調(diào)用方法時(shí)使用的參數(shù)稱為實(shí)際參數(shù)(實(shí)參)。方法頭方法體Java講解方法總結(jié)計(jì)劃方法的聲明聲明方法應(yīng)注意:在類體的“{}”外定義方法,是語(yǔ)法錯(cuò)誤方法名可以是任何合法的標(biāo)識(shí)符返回值類型可以是任何基本數(shù)據(jù)類型、String和void(表示方法不返回值),方法至多可以返回一個(gè)值,且返回值類型是不可省略的如果指定的返回值類型不是void,則方法中必須包含一條return語(yǔ)句,返回指定類型的值,同樣在返回值類型為void的方法中返回一個(gè)值也是一種語(yǔ)法錯(cuò)誤Java講解方法總結(jié)計(jì)劃方法的聲明聲明方法應(yīng)注意(接上頁(yè))方法頭“()”中的形參用逗號(hào)分隔,且用add(inta,b)代替add(inta,intb)是一種錯(cuò)誤方法頭“()”的右端不能放置“;”在方法體中將形式參數(shù)重新聲明是一種語(yǔ)法錯(cuò)誤Java講解方法總結(jié)計(jì)劃方法的聲明方法按是否有參數(shù)可分為有參方法和無(wú)參方法:例定義計(jì)算平方的方法(有參方法)

staticintsquare(intx){ints;s=x*x;return(s);}Java講解方法總結(jié)計(jì)劃方法的聲明例求最大值的方法 intmax3(intx,inty,intz){intbig;if(x>y)big=x;elsebig=y;if(big<z)big=z;return(big);

}Java講解方法總結(jié)計(jì)劃方法的聲明例無(wú)參方法示例publicvoidmy_print(){System.out.println(“*”);System.out.println(“**”);System.out.println(“***”);System.out.println(“****”);}Java講解方法總結(jié)計(jì)劃方法的聲明按照是否有static修飾符,方法分為類方法(又稱靜態(tài)方法)和對(duì)象方法(又稱實(shí)例方法)例:類方法是有static修飾符的方法。publicstaticintmax_method(intx,inty){intmax;if(x>max)max=x;elsemax=y;returnmax;}Java講解方法總結(jié)計(jì)劃方法的聲明對(duì)象方法是沒(méi)有static修飾符修飾的方法,必須生成對(duì)象實(shí)例才能夠使用該方法。如:classCar{intspeed;//變量定義部分。

floatweight,height;//變量定義部分。

voidchangSpeed(intnewSpeed)//對(duì)象方法定義。

{speed=newSpeed;}floatgetWeight()//對(duì)象方法定義。

{returnweight;}floatgetHeight()//對(duì)象方法定義。

{returnheight;}}Java講解方法總結(jié)計(jì)劃方法的調(diào)用1、類方法調(diào)用類方法可以直接調(diào)用或通過(guò)類名.方法名([實(shí)參])調(diào)用,不需生成對(duì)象。對(duì)于有返回值的類方法作為表達(dá)式或表達(dá)式的一部分來(lái)調(diào)用,其在表達(dá)式中出現(xiàn)的形式為:方法名([實(shí)際參數(shù)表])Java講解方法總結(jié)計(jì)劃方法的調(diào)用例

調(diào)用類方法publicclassSquareC{staticintsquare(intx)//類方法

{ints;s=x*x;return(s);}publicstaticvoidmain(String[]args){intn=5;intresult;result=square(n);//類方法調(diào)用

System.out.println(result);}}Java講解方法總結(jié)計(jì)劃方法的調(diào)用對(duì)于沒(méi)有返回值的類方法,以獨(dú)立語(yǔ)句的方式調(diào)用方法。例:classAreaC{staticvoidarea(inta,intb){ints;s=a*b;System.out.println(s);}publicstaticvoidmain(String[]args){intx=5;inty=3;area(x,y);//方法語(yǔ)句,直接調(diào)用類方法

}}

Java講解方法總結(jié)計(jì)劃方法的調(diào)用例

無(wú)參類方法調(diào)用classSumC{staticvoidsum(){inti,j,s;i=3;j=6;s=i+j;System.out.println(s);}publicstaticvoidmain(String[]args){ sum();}}Java講解方法總結(jié)計(jì)劃方法的調(diào)用2、對(duì)象方法調(diào)用對(duì)于對(duì)象方法,必須先生成對(duì)象實(shí)例,然后用如下形式調(diào)用方法:對(duì)象名.方法名([實(shí)參])classMyObject{ staticintx=10; staticinty=20;

voidmethod(intk,intm) { intsum; sum=k+m; System.out.println("sum="+sum); }

publicstaticvoidmain(Stringargs[]) { MyObjectobj=newMyObject();//生成對(duì)象

obj.method(x,y);//調(diào)用對(duì)象方法

}}Java講解方法總結(jié)計(jì)劃方法的調(diào)用//對(duì)象方法(實(shí)例方法)調(diào)用示例:classCar{intspeed;//變量定義部分。

floatweight=12,height=2;//變量定義部分。

voidchangSpeed(intnewSpeed)//對(duì)象方法定義。

{speed=newSpeed;}floatgetWeight()//對(duì)象方法定義。

{returnweight;}floatgetHeight()//對(duì)象方法定義。

{returnheight;}publicstaticvoidmain(Stringargs[]){CarmyCar=newCar();myCar.changSpeed(120);System.out.println("車速度為:"+myCar.speed);System.out.println("車的重量為:"+myCar.getWeight());System.out.println("高度為:"+myCar.getHeight());}}Java講解方法總結(jié)計(jì)劃方法的調(diào)用//對(duì)象方法(實(shí)例方法)調(diào)用示例:注意x,y的值是否變化?文件名如何命名?classTom{voidf(intx,doubley){x=x+1;y=y+1;System.out.println("參數(shù)x和y的值分別是:”+x+”,”+y);}}publicclassExample{publicstaticvoidmain(Stringargs[]){intx=10;doubley=12.58;Tomtom=newTom();tom.f(x,y);System.out.println("main方法中x和y的值仍然分別是:“+x+”,”+y);}}Java講解方法總結(jié)計(jì)劃參數(shù)的傳遞參數(shù)傳遞要點(diǎn):虛實(shí)結(jié)合“三一致”原則即實(shí)參與虛參個(gè)數(shù)、類型、順序一致。例4-5參數(shù)傳遞實(shí)例publicclassSwaping{staticvoidswap(intx,inty){inttemp;temp=x;x=y;y=temp;

}publicstaticvoidmain(String[]args){intu=23,v=100;System.out.println("BeforeCalling");System.out.println("u="+u+"v="+v);swap(u,v);System.out.println("AfterCalling");System.out.println("u="+u+"v="+v);}}Java講解方法總結(jié)計(jì)劃參數(shù)的傳遞classLader{doubleabove,bottom,height;publicvoidsetAbove(doublea){above=a;}publicvoidsetBottom(doubleb){bottom=b;}publicvoidsetHeight(doubleh){height=h;}doublecomputeArea(){return(above+bottom)*height/2.0;}}publicclassExample{publicstaticvoidmain(Stringargs[]){doublearea=0;LaderladerOne=newLader();laderOne.setAbove(10);laderOne.setBottom(40);laderOne.setHeight(2);area=laderOputeArea();System.out.println("laderOne的面積是:"+area);}}Java講解方法總結(jié)計(jì)劃方法的嵌套在解決較為復(fù)雜的問(wèn)題時(shí),用到方法調(diào)用的地方比較多。如果在一個(gè)方法的方法體中又調(diào)用了另外的方法,這就被稱為方法的嵌套調(diào)用,也稱方法的嵌套。【例4-7】用方法的嵌套求立方體的體積程序分析:

main()方法中,調(diào)用vol()方法求立方體的體積,轉(zhuǎn)到vol()方法體中又調(diào)用了area()方法求面積。這種在調(diào)用一個(gè)方法vol()的方法體中又調(diào)用另外的一個(gè)方法area()的做法,就是方法的嵌套Java講解方法總結(jié)計(jì)劃方法的嵌套publicclassVolume{publicstaticvoidmain(Stringargs[]){inti=5,j=6,k=7,v;v=vol(i,j,k);System.out.println("立方體的體積為:"+v);}staticintvol(inta,intb,intc)//求體積的vol()方法

{return(a*area(b,c));}staticintarea(intx,inty)//求面積的area()方法

{return(x*y);}}Java講解方法總結(jié)計(jì)劃遞歸方法嵌套中更為特別的是,如果在被調(diào)用一個(gè)方法的方法體中又調(diào)用一個(gè)方法,而這個(gè)方法正是它自身,即:如果在一個(gè)方法的方法體中又調(diào)用它自身的方法嵌套稱為方法的遞歸。Java講解方法總結(jié)計(jì)劃遞歸例:采用遞歸算法求n!fac(n)=1n=1n*fac(n-1)Java講解方法總結(jié)計(jì)劃遞歸classFactorial{staticlongfac(intn){if(n==1)return1;elsereturnn*fac(n-1);}

publicstaticvoidmain(String[]args){intk;longf;k=25;f=fac(k);System.out.println(f);}Java講解方法總結(jié)計(jì)劃遞歸例:Fibonacci數(shù)列是這樣的一列數(shù):

1,1,2,3,5,8,13,21,34,55,……

第n個(gè)Fibonacci數(shù)的遞歸描述為:publicclassFibo{publicstaticvoidmain(Stringargs[]){for(inti=1;i<=20;i++){System.out.print(f(i)+""); if(i%10==0)System.out.println();}}staticintf(intn){if(n==1||n==2)return1;elsereturn(f(n-2)+f(n-1));}}Java講解方法總結(jié)計(jì)劃遞歸 從程序設(shè)計(jì)的角度來(lái)說(shuō),遞歸調(diào)用必須解決兩個(gè)問(wèn)題:一是遞歸計(jì)算的公式,二是遞歸結(jié)束的條件。每一個(gè)要使用遞歸的方法解決的問(wèn)題,都要先考慮好這兩個(gè)方面。如本例說(shuō)到的遞歸描述中就包含了這兩個(gè)條件,其中:遞歸計(jì)算公式:f(n)=f(n-2)+f(n-1)

遞歸結(jié)束條件:f(1)=1,f(2)=1Java講解方法總結(jié)計(jì)劃遞歸漢諾塔問(wèn)題(P2046.37)問(wèn)題是印度的一個(gè)古老的傳說(shuō)。開(kāi)天辟地的神勃拉瑪在一個(gè)廟里留下了三根金剛石的棒,第一根上面套著64個(gè)圓的金片,最大的一個(gè)在底下,其余一個(gè)比一個(gè)小,依次疊上去,廟里的眾僧不倦地把它們一個(gè)個(gè)地從

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論