2011-11-08 2 views
3

제 과제를 위해 Number를 확장하는 계층 구조에 5 개의 클래스를 작성하려고합니다. 클래스의 두 가지 매개 변수와 반환 유형이있는 각 클래스에 대해 더하기 빼기 곱셈 및 나누기 방법을 만듭니다.IDE 크래시, 오류 코드가없는 추가 메소드

메소드 문법은 각 클래스에서 동일합니다. 그들은 모두 Dr. Java의 상호 작용 창에서 충돌을 일으키고 오류를 반환하지 않습니다.

어떻게 해결할 수 있습니까?

public class ComplexN extends Number{ 
    private double value1; 
    private double value2; 

    public ComplexN(double real, double imaginary){ 
    this.value1=real; 
    this.value2=imaginary; 
    } 

    public double getRealPart(){ 
    return value1; 
    } 

    public double getImaginaryPart(){ 
    return value2; 
    } 


    public static ComplexN add(ComplexN a, ComplexN b){ 
    ComplexN sum = new ComplexN((a.getRealPart()+b.getRealPart()),(a.getImaginaryPart()+b.getImaginaryPart())); 
    return sum; 
    } 
} 
+0

IDE가 충돌하는 경우 IDE의 버그이므로 코드에 문제가 없습니다. –

+0

명령 줄에서 실행할 수있는 간단한 테스트를 작성하십시오. 그런 다음 적어도 스택 추적 및 메시지를 갖습니다. – digitaljoel

+0

문제는 내가 add()를 호출하는 방식이라고 생각합니다. 친구가 코드를 살펴보고 성공적으로 호출 할 수 있었지만 이제 사라졌습니다 ... a.add (a, b) 또는 c.add (a, b)로 호출했습니다. [ab 및 c는 인스턴스화되었습니다 ComplexN] –

답변

2

내 교수와상의 한 후 문제를 결정했습니다.

Dr. Java는 Java 6.0과의 호환성 문제로 인해 toString()을 명시 적으로 사용하지 않고 개체 값을 인쇄 할 때 보안 오류가 발생합니다.

그래서 사용 :

(a.add(a,b)).toString() 

대신 :

a.add(a,b) 

또는 유사 :

a.toString() 

대신 :

a 

... 단기적으로 문제를 해결할 것입니다. 또한 Number 대신 Object extends를 사용하면이 버그가 패치됩니다.