我有一个在构造函数中使用关键字 this 的 Fraction 类:
public Fraction(int numerator, int denominator)
{
this.numerator = numerator;
this.denominator = denominator;
adjustSigns();
if(this.denominator == 0 )
{
throw new FractionException(" Undefined Fraction ");
}
}
我也有一个方法:
public FractionInterface multiply(FractionInterface secondFraction)
{
Fraction second = (Fraction) secondFraction;
Fraction answer = new Fraction ((numerator * second.numerator), (denominator * second.denominator));
answer.reduceToLowestTerms();
return answer;
}
当我编译和运行时,上面的方法工作正常,但这个版本是这样的:
public FractionInterface multiply(FractionInterface secondFraction)
{
Fraction second = (Fraction) secondFraction;
Fraction answer = new Fraction ((this.numerator * second.numerator), (this.denominator * second.denominator));
answer.reduceToLowestTerms();
return answer;
}
我的问题是哪一个是正确的?如果在我的构造函数中使用“this”关键字,我是否也必须在我的方法中使用它?再说一次,他们都工作得很好,并且做了他们应该做的事情,但我想知道哪种方法是正确的方法。谢谢。
Using this
如果您希望区分局部变量和同名成员,则显式是强制性的。否则,它是可选的。
如果没有,您的构造函数不会将传递值分配给实例成员this.
前缀,因为方法参数会隐藏实例成员。如果您为参数指定不同的名称,则可以不用this.
:
public Fraction(int num, int denom)
{
numerator = num;
denominator = denom;
...
}
Both multiply
版本相同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)