簡體   English   中英

使用 setter 和 getter 進行計算

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM