重载构造函数的最佳方法是什么?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重载构造函数的最佳方法是什么?相关的知识,希望对你有一定的参考价值。
在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();
实现的默认值会被下一个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,除非你确定它们不能在子类中被覆盖,否则你永远不会知道他们(可能)肯定会做什么。
以上是关于重载构造函数的最佳方法是什么?的主要内容,如果未能解决你的问题,请参考以下文章