除了您没有验证电池容量在2000-3000 mAh之间的事实外,其他一切对我来说都很好.因此,请确保在尝试设置容量时,该值在有效范围内.
您需要进行一些更改以进行验证:
>更新构造函数以进行容量验证并抛出
值超出范围时发生异常
>更新您的排水方式以确保不会增加容量
跑负.
我直接在这里编写代码,所以请原谅我有任何错误,根据需要进行更改,或消除任何编译问题:
public class Battery
{
private final double fullCharge;
private double batteryCapacity;
public Battery(double capacity)
{
if(capacity < 2000 || capacity > 3000)
throw new Exception("Cannot create Battery as the capacity should be in betweeen 2000 and 3000");
batteryCapacity = capacity;
fullCharge = capacity;
}
public void drain(double amount) throws Exception
{
if((batteryCapacity - amount) < 0 || (batteryCapacity - amount) > 3000)
throw new Exception("The amount is invalid as the battery capacity is going out of range");
else
batteryCapacity = batteryCapacity - amount;
}
public void charge()
{
batteryCapacity = fullCharge;
}
public double getRemainingCapacity()
{
return batteryCapacity;
}
}