方法的基礎語法與過載機制overload
阿新 • • 發佈:2021-10-22
前言:
某個功能程式碼只需要寫一遍
要使用這個功能,只需要給這個功能傳遞具體的資料
這個功能完成之後返回一個最終的結果
在Java語言中有這樣的一個機制:
使用這個方法我們稱為“呼叫/invoke”
方法的本質是什麼
這樣程式碼就可以重複利用了,提高程式碼複用性。(這就是“方法”)
方法的基礎語法
方法的過載機制overload
方法是一段程式碼片段,並且這段程式碼片段可以完成某個特定的功能,並且可以被重複利用。
方法定義在類體當中,在一個類中可以定義多個方法,方法編寫的位置沒有先後順序,可以隨意。
方法體中不能再定義方法!!!方法體由Java語句構成,方法體當中的程式碼遵守自上而下的順序依次執行。
方法
關於Java語言中的方法:
1.方法怎麼定義,語法結構:
[修飾符列表] 返回值型別 方法名(形式引數列表){
方法體:
}
public class MethodTest{
piblic static void main(String[] args){
方法體
}
}
2.對以上的語法結構進行解釋說明:
2.1、關於修飾符列表
*可選項,不是必須的
*目前統一寫成:public static 【以後學】
*方法的修飾符列表當中有“static”關鍵字的話,怎麼呼叫這個方法?
-類名.方法名(實際引數列表);
2.2、返回值型別
*什麼是返回值?
一個方法是可以完成某個功能的,這個功能結束後大多數都是需要返回最終執行
結果的,執行結果可能是一個具體存在的資料。而這個具體的資料就是返回值。
*返回值型別?
返回值是一個具體存在的資料,資料都是有型別的,此處需要指定的是返回值的具
體型別。
*返回值型別都可以指定哪些型別呢?
Java任意一種型別都可以,包括基本資料型別和所有的引用資料型別。
*也可能這個方法執行結束之後不返回任何資料,Java中規定,當一個方法執行結束之
後不返回任何資料的話,返回值型別位置必須編寫:void關鍵字。
*返回值型別可以是:byte,short,int,long,float,double,boolean,char,String,void.....
*返回值型別若不是void,表示這個方法執行結束之後必須返回一個具體的數值。
當方法執行結束的時候沒有返回任何資料的話編譯器報錯。怎麼返回值呢,程式碼怎麼寫
呢? "return 值;",並且要求“值”的資料型別必須和“方法的返回值型別”一致,不然編譯器
報錯。
*返回值型別是void的時候,在方法體當中不能編寫“return 值;”這樣的語句。但是要注意
可以編寫“return;”這樣的語句。
*只要帶有return關鍵字的語句執行,return語句所在的方法結束
2.3、方法名:
*只要是合法的識別符號就行
*方法名最好見名知意
*方法名最好是動詞
*方法名首字母要求小寫,後面每個單詞首字母大寫
2.4、形式引數列表:簡稱形參
*形參是區域性變數:int a; double b;
*形參的個數可以是:0-N個
*多個形參之間用”逗號“隔開
*形參中起決定性作用的是形參的資料型別,形參的名字就是區域性變數的數字。
*方法在呼叫的時候,實際給這個方法傳遞的真實資料被稱為:實際引數,簡稱實參。
*實參列表和形參列表必須滿足:
-數量相同
-型別對應相同
2.5、方法體必須由大括號括起來,方法體中的程式碼有順序,遵循自上而下的順序依次執行。
並且方法體由Java語句構成,每一個Java語句以”;“結尾
3.方法怎麼呼叫?
方法只定義不去呼叫時不會執行,只有在呼叫的時候才會去執行。
語法規則:《方法的修飾符列表當中有static》
類名.方法名(實參列表); <這是一條Java語句,表示呼叫某個類的某個方法,傳遞這樣的
實參>
public class MethodTest{ public static void main(String[] args){ MethodTest.sum(10,20); } public static void sum(int x,int y){ System.out.println(x + "+" + y + "=" + (x+y)); } }
方法的呼叫不一定在main方法當中,可以在其他方法當中。只要是程式可以執行到的位置,都可以呼叫其他方法
public class MethodTest{ //主方法 public static void main(String[] args){ //呼叫sum方法 MethodTest.sum(10,20); } public static void sum(int a,int b){ System.out.println(a + "+" + b + "=" + (a+b)); //呼叫doSome方法 MethodTest.doSome(); } public static void doSome(){ System.out.println("do some"); } }
方法的返回值型別不是void的時候。
1.返回值型別不是void的時候,要求必須執行”return 值;“這樣的語句來完成值的返回
2.一個方法有返回值的時候,當我們呼叫這個方法,方法返回了一個值,對於呼叫者來說,這個返回值可以接收,也可以選擇不接受。但是大部分情況下我們都是選擇接收的。
public class MethodTest{ public static void main(String[] args){ int i = shang(10,2); //採用變數接收返回值,也可以不接收 System.out.println(i); } /* 需求: 請定義並實現一個方法,該方法可以計算兩個int型別資料的商, 要求將最終的計算結果返回給呼叫者。 /* public static int shang(int a,int b){ int c = a/b; return c; } }
深入理解return
*帶有return關鍵字的Java語句只要執行,所在的方法執行結束。
*在”同一個作用域“當中,return語句下面不能編寫任何程式碼,因為這些程式碼永遠都執行不到,所以編譯報錯
public class MethodTest{ public static void main(String[] args){ } public static int m(){ //編譯報錯:缺少返回語句,以下程式編譯器認為無法百分百保證"return 1;"會執行。 int a = 10; if(a>3){ return 1; //System.out.println("hello");s //這裡不能編寫程式碼,編譯錯誤,因為無法訪問的語句 } } }
return終止的是整個方法,下面這段程式碼示例輸出結果沒有Hello World
public class MethodTest{ public static void main(String[] args){ m(); } public static void m(){ for(int i = 0;i<10;i++){ if(i == 5){ return; //return終止的是m()方法,break終止的是for迴圈 } System.out.println("i -->" + i); } System.out.println("Hello World"); } }