第5章程序與函數(shù)的類別方法解讀課件_第1頁(yè)
第5章程序與函數(shù)的類別方法解讀課件_第2頁(yè)
第5章程序與函數(shù)的類別方法解讀課件_第3頁(yè)
第5章程序與函數(shù)的類別方法解讀課件_第4頁(yè)
第5章程序與函數(shù)的類別方法解讀課件_第5頁(yè)
已閱讀5頁(yè),還剩32頁(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)介

1、第5章 程序與函數(shù)的類別方法5-1 程序與函數(shù)的基礎(chǔ)5-2 Java的類別方法5-3 Java的類別變數(shù)和變數(shù)範(fàn)圍5-4 遞迴程式設(shè)計(jì)第5章 程序與函數(shù)的類別方法5-1 程序與函數(shù)的基礎(chǔ)5-1 程序與函數(shù)的基礎(chǔ)-說(shuō)明程式是一個(gè)獨(dú)立的程式區(qū)塊,在執(zhí)行程式時(shí),將流程控制轉(zhuǎn)移至程序,稱為程序呼叫(Subroutines Call)。程序如同一個(gè)黑盒子(Black Box),只要告訴我們?nèi)绾问褂煤诤凶拥氖褂媒槊妫↖nterface)即可,如下圖所示:5-1 程序與函數(shù)的基礎(chǔ)-說(shuō)明程式是一個(gè)獨(dú)立的程式區(qū)塊,在執(zhí)5-1 程序與函數(shù)的基礎(chǔ)-語(yǔ)法與語(yǔ)意程序的語(yǔ)法(Syntactic)是說(shuō)明程序需要傳入何種資料

2、型態(tài)的參數(shù)(Parameters)和傳回值,語(yǔ)意(Semantic)是描述程序可以作什麼事?換句話說(shuō),在撰寫程序時(shí),我們需要了解程序的語(yǔ)法規(guī)則;呼叫程序時(shí)需要了解程序的語(yǔ)意規(guī)則,如此才能夠正確的呼叫程序。5-1 程序與函數(shù)的基礎(chǔ)-語(yǔ)法與語(yǔ)意程序的語(yǔ)法(Syn5-2 Java的類別方法5-2-1 建立Java的類別方法5-2-2 類別方法的參數(shù)傳遞5-2-3 類別方法的傳回值5-2-4 傳值或傳址參數(shù)5-2 Java的類別方法5-2-1 建立Java的類別方法5-2 Java的類別方法Java的程序與函數(shù)稱為方法(Methods),分為:類別的類別方法(Class Methods)物件的實(shí)例方法

3、(Instance Methods)在本章說(shuō)明的是類別方法,相當(dāng)於是其他程式語(yǔ)言的程序和函數(shù)。實(shí)例方法的說(shuō)明請(qǐng)參閱第10章。5-2 Java的類別方法Java的程序與函數(shù)稱為方法(5-2-1 建立Java的類別方法-語(yǔ)法Java語(yǔ)言的類別方法是由方法名稱和程式區(qū)塊組成,其語(yǔ)法格式如下所示:存取敘述 static 傳回值型態(tài) 方法名稱( 參數(shù)列 ) 程式敘述; 5-2-1 建立Java的類別方法-語(yǔ)法Java語(yǔ)言的類別方5-2-1 建立Java的類別方法-存取敘述修飾子存取敘述(Access Specifier)是一種修飾子,可以是public和private,其說(shuō)明如下所示:public:方法

4、可以在程式任何地方進(jìn)行呼叫,甚至是其他類別。private:方法只能在同一個(gè)類別內(nèi)進(jìn)行呼叫。5-2-1 建立Java的類別方法-存取敘述修飾子存取敘述5-2-1 建立Java的類別方法-範(fàn)例例如:沒(méi)有傳回值和參數(shù)列的printTriangle()方法,如下所示:private static void printTriangle() int i, j; for ( i = 5; i = 1; i- ) for ( j = 1; j = i; j+ ) System.out.print(*); System.out.print(n); 5-2-1 建立Java的類別方法-範(fàn)例例如:沒(méi)有傳回值和參5

5、-2-1 建立Java的類別方法-呼叫呼叫Java方法是使用類別名稱或方法名稱,其語(yǔ)法格式如下所示:方法名稱( 參數(shù)列 );類別名稱.方法名稱( 參數(shù)列 );因?yàn)閜rintTriangle()方法沒(méi)有傳回值和參數(shù)列,所以呼叫方法只需使用方法名稱,加上空括號(hào)即可,如下所示:printTriangle();如果在其他類別呼叫此類別方法,例如:public修飾子的sumOne2Ten()方法,其呼叫方式,如下所示:Ch5_2_1.sumOne2Ten();5-2-1 建立Java的類別方法-呼叫呼叫Java方法是使5-2-2 類別方法的參數(shù)傳遞-說(shuō)明Java方法的參數(shù)列是資訊傳遞的機(jī)制,可以從外面將

6、資訊送入方法的黑盒子,參數(shù)列是方法的使用介面。當(dāng)方法擁有參數(shù)列,在呼叫方法時(shí),即可傳入不同參數(shù)來(lái)產(chǎn)生不同的執(zhí)行結(jié)果。5-2-2 類別方法的參數(shù)傳遞-說(shuō)明Java方法的參數(shù)列是資5-2-2 類別方法的參數(shù)傳遞-範(fàn)例例如:擁有參數(shù)的sumN2N()方法,如下所示:static void sumN2N(int begin, int end) int i, sum = 0; for ( i = begin; i 0,使用n!定義的第2條計(jì)算階層函數(shù)4!的值,如下所示:4!=4*3*2*1=24因?yàn)殡A層函數(shù)本身?yè)碛羞f迴特性??梢詫?!的計(jì)算分解成子問(wèn)題,如下所示:4!=4*(4-1)!=4*3!現(xiàn)在3!

7、的計(jì)算成為一個(gè)新的子問(wèn)題,必須先計(jì)算出3!值後,才能處理上述的乘法。5-4-1 遞迴的階層函數(shù)-過(guò)程1例如:計(jì)算4!的值,從上述5-4-1 遞迴的階層函數(shù)-過(guò)程2同理將子問(wèn)題3!繼續(xù)分解,如下所示:3! = 3*(3-1)! = 3*2!2! = 2*(2-1)! = 2*1!1! = 1*(1-1)! = 1*0! = 1*1 = 1最後在知道1!的值後,接著就可以計(jì)算出2!4!的值,如下所示:2! = 2*(2-1)! = 2*1! = 23! = 3(3-1)! = 3*2! = 3*2 = 64! = 4*(4-1)! = 4*3! = 245-4-1 遞迴的階層函數(shù)-過(guò)程2同理將子問(wèn)

8、題3!繼續(xù)分解,5-4-1 遞迴的階層函數(shù)-方法 / 遞迴方法: 計(jì)算階層函數(shù)的值 static int factorial(int n) if ( n = 1 ) / 終止條件 return 1; else return n * factorial(n-1); 5-4-1 遞迴的階層函數(shù)-方法 / 遞迴方法: 計(jì)5-4-2 河內(nèi)塔問(wèn)題-說(shuō)明河內(nèi)塔(Tower of Hanoi)問(wèn)題是程式語(yǔ)言在說(shuō)明遞迴觀念時(shí),不可錯(cuò)過(guò)的實(shí)例,這是一個(gè)流傳在Brahma廟內(nèi)的遊戲,廟內(nèi)的僧侶相信完成這個(gè)遊戲是一件不可能的任務(wù)。河內(nèi)塔問(wèn)題共有三根木樁,如下圖所示:5-4-2 河內(nèi)塔問(wèn)題-說(shuō)明河內(nèi)塔(Tower o

9、f H5-4-2 河內(nèi)塔問(wèn)題-規(guī)則共有n個(gè)盤子放置在第一根木樁,盤子的尺寸由上而下依序遞增。河內(nèi)塔問(wèn)題是將所有的盤子從木樁1搬移到木樁3,在搬動(dòng)的過(guò)程中有三項(xiàng)規(guī)則,如下所示:每次只能移動(dòng)一個(gè)盤子,而且只能從最上面的盤子搬動(dòng)。任何盤子可以搬到任何一根木樁。必須維持盤子的大小是由上而下依序遞增。5-4-2 河內(nèi)塔問(wèn)題-規(guī)則共有n個(gè)盤子放置在第一根木樁,盤5-4-2 河內(nèi)塔問(wèn)題-步驟歸納出三個(gè)步驟,如下所示:Step 1:將最上面n-1個(gè)盤子從木樁1搬移到木樁2。Step 2:將最後一個(gè)盤子從木樁1搬移到木樁3。Step 3:將木樁2的n-1個(gè)盤子搬移到木樁3。5-4-2 河內(nèi)塔問(wèn)題-步驟歸納出三個(gè)步驟,如下所示:5-4-2 河內(nèi)塔問(wèn)題-方法static void towerofHanoi(int d,int p1,int p2,int p3) if ( d = 1 ) / 終止條件 System.out.println(盤子從+p1+移到+p3

溫馨提示

  • 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)論