我们为什么使用这种形式? (这是关于 Java 复数视觉的类(class))
public MathEquation(char opCode)
{
this.opCode = opCode;
}
public MathEquation(char opCode , double leftVal , double rightVal)
{
this(opCode);
this.leftVal = leftVal;
this.rightVal = rightVal;
}
为什么不是这个呢?
public MathEquation(char opCode , double leftVal , double rightVal)
{
this.opCode = opCode
this.leftVal = leftVal;
this.rightVal = rightVal;
}
最佳答案
因为如果出于某种原因,您需要对操作码执行更多操作(例如在存储之前将其转换为大写,或检查它是否在某个范围内,或类似的操作),则无需重复该操作两个构造函数中的代码。一个将简单地调用另一个中已经编写的代码。
这个一般原则称为 DRY:不要重复自己。
请注意,它通常是在另一个方向进行的:最简单的构造函数调用最复杂的构造函数,指定为缺少的参数传递哪些默认值:
public MathEquation(char opCode) {
this(opCode, 0.0, 0.0);
}
关于java - 构造函数链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45772835/