2014-10-18 60 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