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