Java預設參數另類實現法

來源:互聯網
上載者:User

地球人都知道,JAVA跟C++不一樣,定義的函數是無法支援預設參數的,它是通過把方法進行重載實現的,這就是我們所說的多態性表現之一。當然我並沒有說這不好,請別誤會!我也不會誤導你,請接著往下看!

 

 

 

假設我們要做一個加法運算的函數,當有兩個參數的時候,運算結果就返回它們之和再加100,當只有一個參數時,那就輸出它加100,也就是它本身,傳統實現方法如下:

public int AddMethod(int a)

{

       return a+100;

}

public int AddMethod(int a,int b)

{

       return a+b+100;

}

大家應該看到了這個簡單例子,在兩個函數裡,我們相當於寫了兩次相同的代碼!雖然在運行速度上並沒有什麼影響,但是卻產生了代碼冗餘!其實我們可以這樣做:

public void AddMethod(int a) //注意此處傳回值類型

{

       AddMethod(a,0);

}

public int AddMethod(int a,int b)

{

       return a+b+100;

}

哈哈!這樣一來,真正實現函數體只需要寫一次,其他的就可以自動調用!可能你沒有發現它們之間的區別,沒關係,這隻是一個小例子,只是告訴你有這麼一種實現方法,等你需要做的函數語句比較多時,你就會發現它的好處!(注意:可不要用在構造方法中,但你可以試一下^。^)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.