標籤:
方法:
一.什麼是方法?
就是有名字的程式碼片段.適用於函數. 方法的定義只管某個功能的實現,只保證功能的可用.
二.方法的目的是什麼?
為了代碼的重用.(相同的類型的操作,不用重複的寫代碼)
三.方法的構成.(也是方法的聲明)
方法修飾符列表(可不寫) 方法傳回值類型 方法名(參數1,參數2,參數3...){
執行語句;
}
eg: pbulic static void m1(int a, int b){ int c = a + b; }
1. 方法修飾符列表是可選的:許可權控制的:public protected private /static
2. 傳回值類型:11種資料類型中的任意一種類型.
3. 沒有傳回值就:void
4. 方法名只要是合法的標示符即可
5. 方法形參列表,多個逗號隔開,形參也要指明資料類型;
形參:是指在方法處的參數;資料類型 變數名,資料類型 變數名,...
實參:是指在方法調用處,傳入的那個參數.
6. 在方法體內部,如果有傳回值(類型),用return語句;且return有結束函數的作用.
四. 方法的分類:
1.成員方法 2.靜態方法 3.構造方法
五. 方法的調用:
1.程式語句執行的順序的問題:
除了傳統的從上往下,從左往右
由於方法,函數的出現,可以任意的順序編寫代碼,而不用考慮執行上下級的關係.
2.方法定義的時候,也就是寫代碼的地方時不執行的,執行的地方是在函數被調用的地方,函數名,括弧,參數,然後傳回值賦給一個變數.
3.方法的調用:
在main裡面才可以調用.
調用的時候,只用一個名,傳不同的參數就可以了.(直接輸出)
eg:System.out.println( 5 );
System.out.println( 6 );
System.out.println( 7 );
類名.靜態方法名,括弧,參數,傳回值給一個變數;
eg: m1(100,200);
new一個對象賦值給一個變數:物件變數名.方法名,括弧參數,把傳回值賦值給一個變數;
eg: md.m2(10,11);
回呼函數,函數的參數也是個函數,方法的參數是個方法.
eg: System.out.println( Colculate.sum(10,20) );
六. 方法執行的流程
方法執行原理:(方法調用才執行,不調用不執行)
方法在調用的時候,才會在記憶體中給方法劃分空間
如果方法不調用,則不會再記憶體中劃分空間
方法的調用,從記憶體資料結構來講就是"壓棧"(在棧中開闢空間);
方法的結束,從記憶體資料結構來講就是"彈棧";
七. 方法的重載:
同一個類中,方法名相同,參數類表不同的方法叫方法的重載;
參數列表不同;可以是參數個數不同,可以是參數資料類型不同;
方法的重載和傳回值,和修飾符列表無關 如果方法名相同,參數列表相同,方法的重載就是個錯誤.
public class Method{ public static void main(String[] args) { int j; System.out.println( 5 ); System.out.println( 6 ); System.out.println( 7 ); System.out.println( Colculate.sum(10,20) ); System.out.println( "Helloword" ); m1(100,200); Method_01_ md = new Method_01_(); md.m2(10,11); } public static void m1 (int a, int b){ System.out.println( a + "+" + b + "=" + (a+b) ); }}class Colculate{ public static int sum(int a, int b){ return a+b; } public static int sum( int a, int b, int c){ return a+b+c; }}class Method_01_{ public void m2(int a, int b){ a = b++; b = 10; System.out.println( a ); } }
java中的方法大全