나는 지난 몇 시간 동안 아래에서 당황 스러웠습니다. I 좋아해서, 제로 비율에 대한 상수 분획 클래스를 가지고 계속개인 정적 최종 변경 값
class Fraction{
private static final Fraction ZERO = new Fraction(0,1);
public static Fraction zero(){
return ZERO;
}
[etc]
}
, I 발견하는 점에서의 실행 과정에서 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)하시기 바랍니다. –
나머지 코드 plz – DaTroop
참고 : http://ideone.com/vyK81. –