本節內容介紹如何編寫方法以及如何調用方法。
什麼是方法 方法是有多行程式碼群組成的邏輯單位,能夠完成某個特定的功能,這些代碼可以作為整體在其他地方使用,通常根據名字來使用。下面的一段代碼就是一個方法:
public
static
void main(String[] args) { System.
out.println("歡迎開始學習Java!"); }該方法的作用是在控制台上輸出一行文字。 這是一個非常特殊的方法,我們在前面的例子中看到過很多次了,所有要執行的Java程式都會有這樣一個方法,是程式的入口。可以把所有要執行的語句寫在main方法中,但是這樣不容易共用代碼,另外不容易對程式進行維護。所以通常會把不同的功能寫在不同的方法中,然後在main方法中調用。下面分別介紹如何編寫方法以及如何調用方法。
方法定義 下面以求兩個數的最大值為例介紹方法的定義。 在定義方法之前必須明確方法要完成的功能是什麼,功能決定了方法如何?,成為方法體。要求兩個數的最大值,假設這兩個數分別為a和b,要求兩個數的最大值可以編寫如下代碼:
int max;
if(a>b) max = a;
else max = b;第1行定義了一個整型變數,表示最大值。第2行到第5行,判斷如果a大於b,則a是最大值,賦值給max,否則b是最大值,賦值給max。在實現這個功能的時候,不知道兩個數分別是什麼,所以假設兩個數是a和b,在程式執行到這個地方的時候,a和b的值就確定了,所以編寫方法的時候用a和b表示,在這裡a和b是參數,其它地方要調用這個方法的時候需要先對這兩個參數賦值,他們的值是由調用者決定的,所以稱為形參。在方法執行結束的時候,需要把執行的結果返回給方法的調用者,使用return語句,下面的代碼返回求的最大值: return max;方法的傳回值類型需要在定義方法的時候聲明。編寫好的方法是給其它地方使用的,而其他地方根據名字調用方法,所以需要給方法指定一個名字。方法的名字、參數和傳回值通常稱為方法頭。上面的方法的方法頭可以寫成:public static int max(int a,int b)其中,public static是方法修飾符,關於方法的修飾符在第4章介紹,max是方法的名字,max前面的int是方法傳回值類型,括弧中的int a,int b稱為形參。上面求最大值的方法的完整代碼如下: public static int max(int a,int b){ int max; if(a>b) max = a; else max = b; return max; }根據上面的介紹,方法定義的一般形式如下:方法修飾符 傳回值類型 方法名字(參數列表){ 方法體} 如果方法不需要傳回值,則傳回值類型需要寫成void,就像前面介紹的main方法:public static void main(String[] args);如果方法有傳回值,在方法體中需要使用return語句返回執行結果,傳回值類型應該與返回的執行結果類型相同。方法名字必須符合標識符的命名規則,並且盡量能表示方法的功能。如果沒有參數,參數列表可以為空白,如果有多個參數,多個參數之間用逗號隔開。方法體需要使用一對大括弧括起來,不管方法體是有多少行程式碼群組成的,大括弧都不能省略。【例】編寫一個方法,計算兩個整型數的和。
public
static
int add(
int a,
int b){
int sum; sum = a+b;
return sum; }
方法調用 在調用方法的時候首先要知道方法是如何定義的。根據方法的名字調用,並且需要傳遞方法需要的參數,如果有方法有傳回值,則需要定義一個與傳回值類型相同的變數來接收傳回值。例如要調用上面的求最大值的方法,可以使用下面的代碼:
int x=10;
int y=12;
int z =
max(x,y); 注意,方法調用的使用max(x,y),使用的參數名字為x和y,與方法定義的時候不同,也可以相同。因為這個地方使用的是實參,也就是說在執行到這個地方的時候,x和y的值是10和12,也可以直接寫成max(10,12)。而方法定義的時候,使用的是形參,僅僅表示有兩個參數,但是值是由調用者決定的。【例】編寫一個main方法,調用例2-23中的add方法。 public static void main(String[] args) { int y=12; int x=10; int z = add(x,y); System.out.println("兩個數的和為:"+z); } 上一次:
第十四講
數組 下一次:
第十六講 日期和時間的使用 CSDN Blog:http://blog.csdn.net/javaeeteacher 邀請您為好友:http://student.csdn.net/invite.php?u=124362&c=7be8ba2b6f3b6cc5