Java學習筆記4(方法),java學習筆記4方法

來源:互聯網
上載者:User

Java學習筆記4(方法),java學習筆記4方法

方法和c++中的函數類似,區別在於java的方法定義不限位置,而c++中的定義在主函數後面的函數調用前要聲明:

求矩形面積方法樣本:

public class MethodDemo{    public static void main(String[] args){        int area = getArea(5,6);        System.out.println("面積是:"+area);    }    public static int getArea(int w, int h){        return w * h;    }}

輸出:面積是:30

調用過程分析:

1.從main進入,開始執行程式

2.調用getArea方法,傳遞參數,得到傳回值

3.輸出

調用過程記憶體分析:

1.程式運行時期,必須進入記憶體,運行檔案:編譯後的class檔案進入記憶體

2.class檔案進入方法區

3.main方法進棧運行

4.getArea方法進棧運行

5.計算結果返回給調用者

6.getArea方法運行結束,出棧,釋放記憶體資源

7.main輸出後,出棧,釋放記憶體資源,程式結束

注意事項:

1.方法不能定義在另一個方法內

2.方法名嚴格區分大小寫

3.參數不能少傳或多傳,類型一致

4.return代表結束,不可以在return下面繼續寫,傳回型別一致

 

方法重載:

 具體的重載的概念就不介紹了,這裡實現一個最簡單的重載

public class MethodDemo{    public static void main(String[] args){        int sum = getSum(2,3,1);        System.out.println(sum);    }    public static int getSum(int a, int b){        System.out.println("int+int");        return a+b;    }    public static int getSum(int a, int b, int c){        System.out.println("int+int+int");        return a+b+c;    }    public static double getSum(double a, double b){        System.out.println("double+double");        return a+b;    }}

 

再來一個痛點:

public class MethodDemo{    public static void main(String[] args){        int[] arr = {1,2,3,4};        System.out.println(arr[2]);//3        change(arr);        System.out.println(arr[2]);//100    }    public static void change(int[] arr){        arr[2] = 100;    }}

 

解釋:

1.main方法進棧運行

2.在堆中開空間放入數組ARR並賦值

3.數組首地址傳給棧中的ARR,即ARR指向存有這個數組的記憶體空間

4.調用change傳遞的參數方法實際上是記憶體位址,change中的ARR變數的地址和main中的ARR地址相同

5.在change方法運行結束後釋放記憶體,但是通過地址改變的arr[2]徹底變了

通俗地理解:多個人合租房子,都拿到房屋地地址,某個人進入房子裝修,以後進入的人看見的都是裝修後的房子

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.