Question in book: Write a class Battery that models a rechargeable battery. A battery has a constructor public Battery(double capacity) where capacity is a value measured in milliampere hours. A typical AA battery has a capacity of 2000 to 3000 mAh. The method public void drain(double amount) drains the capacity of the battery by the given amount. The method public void charge() charges the battery to its original capacity. The method public double getRemainingCapacity() gets the remaining capacity of the battery.
My Question: Are my instance variables right? How do you figure out what needs to be in the private instance variables? (If that makes sense) Can this code be written in a better way?
My Code:
public class Battery
{
private double fullCharge;
private double batteryCapacity;
public Battery(double capacity)
{
batteryCapacity = capacity;
fullCharge = capacity;
}
public void drain(double amount)
{
batteryCapacity = batteryCapacity - amount;
}
public void charge()
{
batteryCapacity = fullCharge;
}
public double getRemainingCapacity()
{
return batteryCapacity;
}
}
Your instance variable seems pretty good.
Generally most of the instance variable are made private and if and only if it seems that making an instance variable private makes no sense or doesn't provide any profit you make it as public.
Use compound assignment operator in the method drain()
batteryCapacity -= amount;
You can update the methods and constructors to check the range(for negative values).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With