Java:通过构造函数调用构造函数,重点是什么?

kry*_*tah 4 java

我看到有些人在这里做第二个构造函数中的东西:

public class Apples {

  String color;
  int quantity;

  public Apples(String color, int quantity) {
    this.color = color;
    this.quantity = quantity;
  }

  public Apples(String color) {
    this(color, 0);
  }

}
Run Code Online (Sandbox Code Playgroud)

这样做的原因是什么?对我来说,似乎你正在调用一个额外的方法(构造函数)只是为了节省几行.我记得几年前一位教授说这是不好的做法,但我不记得他说这个的理由.

Ama*_*tri 10

今天的计算机速度如此之快,以至于为了便于阅读和删除代码冗余而调用其他方法比使用无人能理解的复杂和重复代码更令人感激.

编程不只是编码,而是远不止于此.您必须通过代码向将要阅读您的代码的人讲述一个故事.建议使用干净的代码.

因此,如果从另一个构造函数调用构造函数保存10行代码,那就更好了.今天的编译器非常智能,它们将为这些场景生成非常有效的字节/机器代码.


Pet*_*rey 7

DRY =不要重复自己.这不仅可以减少代码,还可以更轻松地理解代码.您可以看到具有一个参数的构造函数与使用额外零调用另一个参数的构造函数相同.在更复杂的例子中,这会带来更多不同.

WET =写一切两次;)