使用setter和getter进行计算



我有一个Java程序,运行良好。然而,今天,虽然程序中没有错误,但我得到了以下消息:

Exception in thread "main" java.lang.NullPointerException
at geometrycalculator.planeFigurePerimeter.rectangle(planeFigurePerimeter.java:12)
at geometrycalculator.GeometryCalculator.main(GeometryCalculator.java:50)
C:UsersgustavoAppDataLocalNetBeansCache8.2executor-snippetsrun.xml:53: Java returned: 1
BUILD FAILED (total time: 8 seconds)

因此,在儿童班的第12行,我有:

calculator.setPerimeter((length + width) * 2);

在主程序的第50行,我有:

perimeter.rectangle();

关于父类我有:

public void setPerimeter(double newPerimeter){
perimeter = newPerimeter;
}
public double getPerimeter(){
return perimeter;
}

由于某些原因,计算未在calculator.setPerimeter((length + width) * 2);中执行

父类是抽象的,子类从父类扩展而来,这样我就不必在所有其他子类上创建相同的变量。

获取NPE的唯一可能性是,您的calculator对象引用可能尚未初始化/null

在调用setPerimeter方法之前,检查它是否已正确初始化

calculator.setPerimeter((length + width) * 2);

好的,所以我遇到的问题是因为我将父类作为抽象类,无法直接访问setter和getter。我将父类更改为公共类,而不是抽象类,现在它可以工作了。欢迎任何关于我是否应该将父类从公共类更改为私人类和/或将其抽象化的建议。我愿意扩展我的Java知识。

最新更新