我在Object类中有一个构造函数,它将其输入值传递给一个函数,该函数返回相同类型的对象,我想知道为什么不能在一行中设置新对象的所有实例变量,如下所示:this = function();
以下是我当前的解决方案:
public class Fraction {
long num;
long den;
public Fraction(double numIn, double denIn){
Fraction temp = reduceFraction(numIn, denIn);
num = temp.num;
den = temp.den;
}
我也可以这样做:
public Fraction(double numIn, double denIn){
Fraction temp = reduceFraction(numIn, denIn);
this.num = temp.num;
this.den = temp.den;
}
像这样的东西会干净得多,但不起作用:
public Fraction(double numIn, double denIn){
this = reduceFraction(numIn, denIn);
}
由于我的对象只有两个实例变量,单独设置每个变量并不是什么大不了的事情,但是对于更复杂的对象,这似乎真的很不方便.有没有比我目前的解决方案更干净的方法来完成这项任务?