方法執行原理:(方法不調用不執行,調用才執行)
* 方法在調用的這時候,才會在內存中划分空間
* 方法在調用的時候,是在棧內存中分配的空間(jvm有一塊內存是棧內存)
* 函數/方法目的: 還是為了代碼重用
* 相同的類型的操作,不容重復的寫代碼
* 函數/方法:就是一段有名字的代碼段
* 方法的定義
* [方法修飾符列表] 方法返回值類型 方法名(參數1,參數2,參數3....){
* 執行語句;
* }
*
* 方法修飾符列表是可選的:權限控制的:public protected private /static
* 返回值類型:11中數據類型中的任意一種類型
* 沒有返回值就:void
* 方法名只要是合法的標識符即可
* 方法形參列表,多個逗號隔開,形參也要指明數據類型;
* 形參:是指在函數/方法定義處,那些參數;數據類型 變量名, 數據類型,變量名,
* 實參:是指在函數調用處,傳入的那個參數.
* 在方法體內部,如果有返回值(類型),用return語句;且return是結束函數的作用
* 方法的調用:從內存數據結構來講就是壓棧
* 方法的結束:從內存數據結構來講就是彈棧
* 方法的重載:
* 同一個類中,方法名相同,參數列表不同的方法叫方法的重載;
* 參數列表不同:可以是參數個數不同,可以是參數數據類型不同
* 方法的重載和返回值,和修飾符列表無關.
* 棧:這個十一中數據結構,就像彈夾,薯片盒子,后進去先出來
下面是遞歸調用的例子:
public class Method_10{
public static void main(String[] args){ //方法main入口
int i=100; //聲明數據類型i,賦值為100
m_1(i); //調用m1方法,賦值i為100
System.out.println( "hello world" );//調用m1后完成賦值,輸出內容
}
public static void m1(int i){ //聲明m_1方法
m_2(i) ; //調用m_2方法,i賦值為100
System.out.println( "方法m_1被調用了" );//運行原理:m_1方法中調用好了m_2,聲明m_2方法並調用方法m_3,聲明方法m_3,在m_3中輸出"m3的方法中i="+i;輸出m_3被調用了,i被賦值為100,m_3運行完后返回調用m_3處,在m_2聲明中,m_3調用運行完成,輸出方法m_2被調用;聲名m_2運行完后,返回調用m_2處,在聲明m_1中,m_2運行完成,輸出"方法m_1被調用",返回調用m_1處,輸出"hello word"
}
public static void m_2(int i){
m_3(i);
System.out.println( "方法m_2被調用了" );
}
public static void m_3(int i){
System.out.println( "m_3方法中的i="+ i );
System.out.println( "方法m_3被調用了" );
}
}
這是我剛學習的內容,印象還比較深刻,所以總結一下,記錄下來,方便以后查看,本文內容都是我根據自己的理解寫下來的,有什么不對的地方還希望和大家多多交流,O(∩_∩)O謝謝!