2014-10-18 81 views
1

計算氣體損失量並將汽車的當前氣體容量設置爲新值。 我忘了將這部分添加到問題中。氣體量不超過頂部氣體容量。我想知道這是對的嗎?如何編寫accessor和mutator?

private final int GAS_CAP = 30 

    public int getGasCapacity(int gasCapacity) 
    { 
     if(currentGas <= GAS_CAP) 
     { 
     gasCapacity = GAS_CAP - currentGas; 
     } 
    else gasCapacity = currentGas; 
     return gasCapacity; 
    } 
+0

您正在要求用戶使用此方法來提供氣體容量以計算氣體容量。你爲什麼要提供任何東西? – 2014-10-18 07:53:09

回答

1

您的方法不改變對象的狀態,它只是返回一個值。您只爲該方法的本地參數gasCapacity分配一個值。

如果它應該改變某些東西,那麼你弄錯了。

此外,您沒有對gasCapacity變量中傳遞給您的方法的值做任何處理,因此您的邏輯看起來不正確。

1

您可能需要兩種方法來獲得當前的氣體(訪問器)和一個設置它(增變器)。

public int getGasLost(){ 
    return GAS_CAP - currentGas; 
} 

public void setGasCapacity(int gasCapacity){ 
    GAS_CAP = gasCapacity; 
} 

然而,由於GAS_CAP似乎是一個final值,你將無法改變它,你能證實?

+0

這是正確的GAS_CAP是一個最終值 – JayLo 2014-10-18 07:57:45

+0

在這種情況下,你不能改變它,請確保你試圖獲取和設置正確的變量,然後回到我身邊。 – SamTebbs33 2014-10-18 07:59:08

+0

@JayLo如果你想mutater然後不使用final – 2014-10-18 07:59:15