对于我的作业,我将在扩展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;
  }
}

最佳答案

与我的教授协商后,我确定了问题所在。

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

因此使用:

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

代替:
a.add(a,b)

或类似的:
a.toString()

代替:
a

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

08-05 17:12