国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java 方法的參數可以有默認值嗎?

freewolf / 1769人閱讀

摘要:方法的參數可以有默認值嗎例如回答不支持這種特性,如果你真的有需求,你可以通過方法的重載間接的支持默認的參數值使用工廠模式重載這個很簡單這樣就相當于給一個默認的參數值。但是有的時候如果參數太多,就不適合了。

Java 方法的參數可以有默認值嗎?

例如

void method(String p1, int p2, bool p3=false);
回答

Java不支持這種特性,
如果你真的有需求,你可以

通過方法的重載間接的支持默認的參數值

使用工廠模式

重載

這個很簡單

void method(String p1, int p2, bool p3){
  // ....
};
void method(String p1, int p2){
  bool p3 = false;
  // ... 
};

這樣就相當于給p3一個默認的參數值。

但是有的時候如果參數太多,就不適合了。
就要用到下面的工廠方法

工廠方法
public class StudentBuilder
{
    private String _name;
    private int _age = 14;      // this has a default
    private String _motto = ""; // most students don"t have one

    public StudentBuilder() { }

    public Student buildStudent()
    {
        return new Student(_name, _age, _motto);
    }

    public StudentBuilder name(String _name)
    {
        this._name = _name;
        return this;
    }

    public StudentBuilder age(int _age)
    {
        this._age = _age;
        return this;
    }

    public StudentBuilder motto(String _motto)
    {
        this._motto = _motto;
        return this;
    }
}
Student s1 = new StudentBuilder().name("Eli").buildStudent();
Student s2 = new StudentBuilder()
                 .name("Spicoli")
                 .age(16)
                 .motto("Aloha, Mr Hand")
                 .buildStudent();

在上面的示例中,我們沒有直接
的創建一個Student對象,而是
通過StudentBuilder來創建一個工廠,
然后在這個工廠中預先設定了一些模板,

為什么要創建一個StudentBuilder

而不是直接這樣寫:

Student s1 = new Student().age(16)

這樣寫有兩個壞處

實例化有些字段沒有初始化,可能存在

安全隱患

很多時候,我們創建一個Student之后,并不希望他有一個.age()方法,這個方法可能會被濫用。

收錄于 https://github.com/fish56/Jav...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/73819.html

相關文章

  • Java貓說】關于Java方法及傳參一些問題

    摘要:我可不可以忽略返回值并未要求一定要處理返回值。你可以調用返回非類型的方法而不必理會返回值,這代表你要的是方法的行為而不是返回值,你可以不指派返回值。 閱讀本文約1.2分鐘 1、如果想要傳入的參數是對象而不是primitive主數據類型會怎樣? 在Java中所傳遞的所有東西都是值,但此值是變量所攜帶的值。還有,引用對象的變量所攜帶的是遠程控制而不是對象本身,若你對方法傳入參數,實際上傳...

    woshicixide 評論0 收藏0
  • CSS基礎篇--css reset重置樣式那么重要嗎?

    摘要:在以前寫代碼的時候,一般都會在里添加重置樣式,其內容如下但是最近在網上看了看網絡文章,也感覺有些重置是沒有用的。當然重置的優點,缺點都不說了,估計心里都非常有數的,還是要根據實際項目來。后來主管給我推薦了一款替代重置的替代方案,那就是用。 在以前寫html代碼的時候,一般都會在head里添加重置樣式reset.css,其內容如下: @charset utf-8; html, body,...

    rockswang 評論0 收藏0
  • 【譯】Java 核心內容相關面試題

    摘要:能否聲明一個內容為空的接口可以。能否將接口聲明為不允許,這樣做會導致編譯錯誤。當異常沒有被捕獲時,會發生什么當前線程所在的線程組會執行一個叫的方法,最后程序會異常退出。非靜態內部類可以使用哪些修飾符非靜態內部類可以使用或修飾符。 原文地址 http://www.instanceofjava.com/2014/12/core-java-interview-questions.html 1...

    sunny5541 評論0 收藏0
  • 100 個基本 Python 面試問題第二部分(21-40)

    摘要:為我們提供了許多內置函數,例如并提供了創建用戶定義函數的能力。會將該變量視為函數級作用域中的局部變量。回到目錄中函數的用途是什么是中的內置函數之一。請注意,這種類型的參數語法不允許將命名參數傳遞給函數。函數接受一個稱為的可選參數。 ...

    2450184176 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<