对于我的作业,我将在扩展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可以解决此错误。