[英]using setter and getter for calculations
我在 Java 中有這個程序運行良好。 然而今天,雖然程序中沒有錯誤,但我收到以下消息:
Exception in thread "main" java.lang.NullPointerException
at geometrycalculator.planeFigurePerimeter.rectangle(planeFigurePerimeter.java:12)
at geometrycalculator.GeometryCalculator.main(GeometryCalculator.java:50)
C:\Users\gustavo\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 8 seconds)
所以在子 class 的第 12 行我有:
calculator.setPerimeter((length + width) * 2);
在主程序的第 50 行,我有:
perimeter.rectangle();
在父 class 我有:
public void setPerimeter(double newPerimeter){
perimeter = newPerimeter;
}
public double getPerimeter(){
return perimeter;
}
由於某種原因,計算沒有執行: calculator.setPerimeter((length + width) * 2);
父 class 是抽象的,子 class 從父 class 擴展,這樣我就不必在所有其他子類上創建相同的變量。
獲得 NPE 的唯一可能性是,您的calculator
object 參考可能尚未初始化/ null
。
在調用setPerimeter
方法之前檢查它是否已經正確初始化
calculator.setPerimeter((length + width) * 2);
好的,所以我遇到的問題是因為我將父級作為抽象 class 並且無法直接訪問設置器和獲取器。 我將父 class 更改為公共而不是抽象的,它現在可以工作了。 歡迎任何關於我是否應該將父 class 從公共更改為私有和/或將其抽象化的建議。 我願意擴展我對 Java 的知識。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.