雖然編碼的,我遇到以下情況:計算類成員
我有一個類,姑且稱之爲C
。現在
public class C {
private int A;
public C(...) {
...
}
public void calculateA() {
A = 42;
}
public int getA() {
}
}
我的問題是,如何實現吸氣getA
正確:它必須先計算任意類型的屬性A
。我應該檢查A是否被定義,否則拋出異常?
或者我應該在getA
中撥打calculateA
如果沒有設置?
這種問題的最佳選擇是什麼?
編輯: OK,我給了一個壞榜樣。 A
不能在構造函數中計算,因爲計算方法將返回同一類的新實例,這將導致無限遞歸。
爲什麼不是一個在構造函數設置的默認值? – Shaded
取決於。但如果它是一個整數,你將如何區分它與未設置的值? '0'是一個無效值嗎?這是一個長期運行的計算(例如,它真的很重要)嗎? –
這對這個例子有意義。但就我而言,沒有任何默認值是合理的。 – George