簡體   English   中英

重載構造函數的最佳方法是什么?

[英]what is the best way to overload constructor?

在java中重載一個構造函數,我應該寫:

public Livre() {
    this.setAutor("");
    this.setTitle("");
}
public Livre(String a, String t) {
    this();
    this.setAuteur(a);
    this.setTitre(t);
}

或者

public Livre() {
    this("", "");
}
public Livre(String a, String t) {
    this.setAutor(a);
    this.setTitle(t);
}

第一個在默認構造函數中具有所有默認值,但第二個似乎更廣泛,為什么?

謝謝

ps:對不起我的英語

public Livre() {
    this.setAutor("");
    this.setTitle("");
}
public Livre(String a, String t) {
    this();
    this.setAuteur(a);
    this.setTitre(t);
}

這沒有什么意義,因為您通過調用this();設置的默認值this(); 被下一個 setter 覆蓋。

public Livre() {
    this("", "");
}
public Livre(String a, String t) {
    this.setAutor(a);
    this.setTitle(t);
}

這與以下內容相同:

public Livre() {
    this.setAutor("");
    this.setTitle("");
}
public Livre(String a, String t) {
    this.setAutor(a);
    this.setTitle(t);
}

這只是為了避免代碼重復。

另外:你不應該在構造函數中調用 setter,除非你確定它們不能在子類中被覆蓋,否則你永遠不會知道它們(可能)做什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM