java中的方法,我們可以將其看成一個(gè)功能的集合,他們是為了解決特定問題的代碼組合。比如:司機(jī)會(huì)開車,老師會(huì)教書一樣,不同的方法可以實(shí)現(xiàn)不同的功能。
方法的定義語法:
訪問修飾符 返回值類型 方法名(參數(shù)列表){ 方法體}在上面的語法說明中:
訪問修飾符,代表方法允許被訪問的權(quán)限范圍, 可以是 public、PRotected、private 甚至可以省略 ,其中 public 表示該方法可以被其他任何代碼調(diào)用
返回值類型是方法返回值的類型,如果方法不返回任何值,則返回值類型指定為 void (代表無類型);如果方法具有返回值,則需要指定返回值的類型,并且在方法體中使用return 語句返回值。
方法名是方法的名字,必須使用合法的標(biāo)識(shí)符。
參數(shù)列表是傳遞給方法的參數(shù)列表,參數(shù)可以有多個(gè),多個(gè)參數(shù)間以逗號(hào)隔開,每個(gè)參數(shù)由參數(shù)類型和參數(shù)名組成,以空格隔開。
根據(jù)方法是否帶參、是否帶返回值,可將方法分為四類:
無參無返回值方法無參帶返回值方法帶參無返回值方法帶參帶返回值方法例如:
public class PrintScore { public static void main(String[] args) { // 創(chuàng)建對象,對象名為a printScore a = new printScore(); int rSum; //設(shè)置一個(gè)int型變量,用來接收方法的返回值 // 調(diào)用方法,傳入兩門課程的成績 rSum = a.calcSum(78,99); System.out.println("總分:"+ rSum); } /* * 功能:計(jì)算兩門課程考試成績的總分并輸出總分 * 定義一個(gè)包含兩個(gè)參數(shù)的方法,用來傳入兩門課程的成績 */ public int calcSum(int a, int b){ int sum= a + b; return sum; }} 如上所示:方法名為calcSum
,他有兩個(gè)參數(shù)int a
和int b
,在方法調(diào)用的時(shí)候必須傳入這兩個(gè)參數(shù)。它有一個(gè)int 型
的返回值,所以在方法里,有一條語句return sum;
用來返回sum
的值,而在方法調(diào)用的時(shí)候,我們用一個(gè)int 型
變量rSum
來接收這個(gè)返回值。方法calcSum
實(shí)現(xiàn)了將兩門課程的總成績算出并返回。
注意:
方法體放在一對大括號(hào)中,實(shí)現(xiàn)特定的操作
方法名主要在調(diào)用這個(gè)方法時(shí)使用,需要注意命名的規(guī)范,一般采用第一個(gè)單詞首字母小寫,其它單詞首字母大寫的形式
調(diào)用方法的語法是對象名.方法名
或 類名.靜態(tài)方法名
參數(shù)與參數(shù)列表
在現(xiàn)實(shí)生活中,我們?yōu)榱送瓿赡臣虑橹笆切枰恍l件的,比如我們買東西肯定是需要錢的。當(dāng)然,方法也是如此。我們需要方法幫我們完成某項(xiàng)功能的時(shí)候,需要根據(jù)需求去調(diào)整條件。于是就有了參數(shù)。
我們可以通過在方法中加入?yún)?shù)列表接收外部傳入的數(shù)據(jù)信息,參數(shù)可以是任意的基本類型數(shù)據(jù)或引用類型數(shù)據(jù)。
例如:
public void printName(String name){ System.out.println(name);} 上面就是一個(gè)方法,方法名為printName
,無返回值,參數(shù)類型為String
,參數(shù)名name
,它的功能是打印姓名,我們通過參數(shù)將姓名傳入到這個(gè)方法中,利用方法將姓名輸出到控制臺(tái)上。
調(diào)用帶參方法與調(diào)用無參方法的語法類似,但在調(diào)用時(shí)必須傳入實(shí)際的參數(shù)值。語法為對象名.方法名(參數(shù)1,參數(shù)2...)
在這里我們必須區(qū)分什么是實(shí)參什么是形參。我們先看一個(gè)例子。
public class printScore { public static void main(String[] args) { // 創(chuàng)建對象,對象名為a printScore a = new printScore(); double rAve; //用來存放返回的平均成績 //兩課的成績,是我們實(shí)際的參數(shù) int sub1 = 78; int sub2 = 99; // 調(diào)用方法,傳入兩門課程的成績 rAve = a.calcAve(sub1,sub2); System.out.println("平均分:"+rAve); } /* * 功能:計(jì)算兩門課程考試成績的平均分并輸出平均分 * 定義一個(gè)包含兩個(gè)參數(shù)的方法,用來傳入兩門課程的成績 * 兩個(gè)參數(shù) a 和 b 為我們的形參,只在方法內(nèi)有效 */ public double calcAve(int a, int b){ double ave = (a + b) / 2; return ave; }} 我們可以通過內(nèi)存的圖示來簡單地說明一下。

上圖是方法調(diào)用前內(nèi)存的情況,所有的變量都存放在桟中,由系統(tǒng)統(tǒng)一管理,因?yàn)槲覀冊诙x變量rAve
時(shí)未對它進(jìn)行初始化,所以它的值是隨機(jī)的,由它所在空間原有的值決定。


方法調(diào)用時(shí),系統(tǒng)會(huì)專門為方法開辟一塊空間用來存放方法內(nèi)的變量。此時(shí)大家可以看到,sub1
和sub2
兩個(gè)實(shí)參其實(shí)并沒有進(jìn)入方法中,只是將它們兩個(gè)的值賦值個(gè)了形參a
和b
。

方法調(diào)用結(jié)束后,系統(tǒng)會(huì)釋放掉方法所產(chǎn)生的空間,回收系統(tǒng)資源。該方法有返回值,并被rAve
接收了。
注意:
調(diào)用帶參方法時(shí),必須保證實(shí)參的數(shù)量、類型、順序與形參一一對應(yīng)
調(diào)用方法時(shí),實(shí)參不需要指定數(shù)據(jù)類型
當(dāng)方法參數(shù)有多個(gè)時(shí),多個(gè)參數(shù)間以逗號(hào)分隔
返回值
如上面的例子所示,方法是一個(gè)實(shí)現(xiàn)了條件輸入和結(jié)果輸出的過程,往往我們需要對方法的結(jié)果進(jìn)行進(jìn)一步的處理,這時(shí)候我們就需要方法返回值了。
注意:
如果方法的返回類型為 void ,則方法中可以不使用return返回值或使用return;
方法的返回值最多只能有一個(gè),不能返回多個(gè)值。
方法返回值的類型必須兼容,也就是說如果返回值類型為 int ,則不能返回 String 型值
調(diào)用帶返回值的方法時(shí),由于方法執(zhí)行后會(huì)返回一個(gè)結(jié)果,因此在調(diào)用帶返回值方法時(shí),一般都會(huì)接收其返回值并進(jìn)行處理
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注