3

对于我的任务,我要在扩展 Number 的层次结构中创建 5 个类。我将为每个具有两个参数和类的返回类型的类创建加减乘法和除法方法。

每个类的方法语法相同。它们都会在 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;
  }
}
4

1 回答 1

2

在咨询了我的教授之后,我确定了这个问题。

Dr. Java 存在与 Java 6.0 的兼容性问题,当您在未显式使用 toString() 的情况下打印对象的值时会导致安全错误。

所以使用:

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

代替:

a.add(a,b)

或类似地:

a.toString()

代替:

a

...将在短期内解决问题。同样让类扩展 Object 而不是 Number 将修补此错误。

于 2011-11-10T02:09:31.530 回答