过去几个小时,我一直对以下内容感到困惑。我有一个Fraction类具有恒定的零级分,例如:私人静态最终变更的价值
class Fraction{
private static final Fraction ZERO = new Fraction(0,1);
public static Fraction zero(){
return ZERO;
}
[etc]
}
随后,我发现的ZERO变化执行的过程中,在该值:
System.out.println(Fraction.zero());
Fraction half = new Fraction(1, 2);
System.out.println(Fraction.zero());
输出:
1/1
1/2
虽然显然产生的值应该是0/1,并且更重要的是固定的。 这个问题绝对不是与Fraction类和与之相关的GCD计算器的实现,因为我已经在过去成功和广泛地使用了它们。
任何关于这种奇怪行为的想法和想法都非常感谢。
[最小测试用例](http://sscce.org),或者它没有发生! – 2012-07-17 18:34:39
其余代码plz – DaTroop 2012-07-17 18:35:16
另请参阅:http://ideone.com/vyK81。 – 2012-07-17 18:36:57