Java Java Objects Harnessing the Power of Objects Overload Methods

... hello i am having problems with this code on overloading, second stage

create a new method named drive that accepts no arguments. It should call the newer drive method passing in a 1 for the default

GoKart.java
class GoKart {
  public static final int MAX_BARS = 8;
  private String color;
  private int barCount;
  private int lapsDriven;

  public GoKart(String color) {
    this.color = color;
  }

  public String getColor() {
    return color;
  }
  public void charge() {
    barCount = MAX_BARS;
  }

  public boolean isBatteryEmpty() {
    return barCount == 0;
  }

  public boolean isFullyCharged() {
    return MAX_BARS == barCount;
  }

  public void drive() {
    lapsDriven++;
    barCount--;
  }
  public void drive(){
    drive(MAX_BARS);
  }
  public void drive(int lapsDriven) {
    lapsDriven += lapsDriven;
    barCount -= lapsDriven;
  }

}

2 Answers

calp
calp
10,314 Points

Hello, your solution is extremely close to being correct but you have made one mistake. Instead of passing a default value of 1 to the overloaded method, you have passed the variable MAX_BARS.

Here is some code for this problem so you can easily pinpoint what I mean (I've also changed your parameters name to help with readability)

public void drive() {
    drive(1);
}

public void drive(int lapsIncrease) {
    lapsDriven += lapsIncrease;
    barCount -= lapsIncrease;
}

... thanks. i am applying it.