控制程序流程的方法有3種,1.方法的調用 2.選擇語句(if else)3.循環(while,do_while,for等), 相信選擇語句跟循環你們已經很熟悉了,今天咱們說方法的調用,方法的調用是在一個叫方法調用棧的機制上的,規則是先進後出,意思是說先執行的方法後結束,一個程序最早執行的方法是main()方法,是由JAVA虛擬機(JVM)執行的,所以main()是最後結束的。若是一個JAVA程序是多線程的,那麼它能夠有多個調用棧這在後面進行講解。編程
一個方法被調用時,會被放在調用棧的頂部,直到方法結束,當方法執行時,會發生三種狀況。多線程
1.方法返回一個值。編程語言
2. 方法不返回一個值。(void)this
3. 方法拋出一個異常給調用者。線程
怎麼書寫一個方法呢?指針
方法書籤{對象
方法實例內存
}編譯器
一個方法分爲「方法簽名」跟「方法實例」兩塊虛擬機
方法書籤:public static void main(String [] args)
方法簽名又分爲訪問修飾符:public,可選修飾符static,返回值void,方法名main,形式參數列表(String[] args)。
一個方法簽名包括一個形式參數列表,它聲明傳遞到方法中的數據的類型(實際上聲明瞭一個變量),注意一個方法能夠有多個形式參數用「,」隔開,調用的時候實際參數(傳遞給方法的參數)必須順序、個數相同,可是隻能有一個返回值,這是電子科大研究生都要搞錯的問題。
在JAVA方法調用的時候,是把實際參數的數據複製給形式參數,這種過程叫作按值調用,也是惟一的,由於JAVA中不能按引用調用或者按指針調用,這種狀況下實際參數不是複製給形式參數的。
方法的重載,JAVA中容許方法的重載,當一個類有兩個或者多個同名可是有不一樣參數列表的方法時,就是方法的重載。不一樣參數列表有三種狀況:1.參數個數2.參數類型3.參數順序。方法具備相同名字,聽起來不是那麼重要的,可是方法重載在JAVA以及其餘編程語言中使用是比較頻繁的。
構造器,構造器就是構造方法,做用是爲了建立對象,構造方法有兩大特色1.無返回類型,無返回值2.構造方法必須與類名相同。構造能夠寫也能夠不寫,不寫的話編譯器會爲咱們默認一個構造方法,若是寫了就按照咱們所寫的構造方法來,注意構造方法也是方法,能夠實現方法的重載,能夠對屬性賦值。咱們知道內存分爲4個部分,堆,棧,數據段和代碼段。
而構造方法對屬性初始化能夠分爲4個步驟,
在堆中劃分空間
在此空間劃分屬性
對屬性初始化
而後再執行在構造方法所寫的代碼。
構造器中this的使用,this有兩個做用,一個是this.:表明當前對象,調用當前對象的屬性和行爲。第二格就是在一個類中調用其餘構造器this(參數),可是這句代碼只能在構造器的第一句。
方法的調用跟C語言同樣。方法名(實際參數