2011-11-08 5 views
3

私の割り当てでは、Numberを拡張する階層に5つのクラスを作成します。私は、クラスの2つのパラメータと戻り値の型を持つ各クラスの加算減算の乗算とデビジョンのメソッドを作成します。IDEクラッシュ、エラーコードなしの追加メソッド

メソッドの文法は、各クラスで同じです。彼らはすべて、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はインスタンス化されています複雑なNの] –

答えて

2

私の教授と相談した後、問題を特定しました。

Dr. Javaには、明示的にtoString()を使用せずにオブジェクトの値を印刷するときにセキュリティエラーが発生するJava 6.0との互換性の問題があります。

そう使用:

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

代わりに:

a.add(a,b) 

又は同様の:

a.toString() 

代わりに:

a 

...短時間で問題を解決します。また、Numberの代わりにclass extends Objectを使用すると、このバグが修正されます。

関連する問題