Java Java Objects Harnessing the Power of Objects Overload Methods

Lucas Easley
Lucas Easley
691 Points

Create a new method named drive

I've been stuck on this question for a while(below). What does Craig mean by "passing in a 1 for the default."

Of course, another user of the code just wrote and asked "Where'd that drive method go! I loved that method, can you put it back please?" Sigh...Well thanks to method overloading we can pretty easily bring the method back

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(int laps) {
    lapsDriven += laps;
    barCount -= laps;
  }

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

}

2 Answers

Steven Parker
Steven Parker
203,137 Points

To create a method "that accepts no arguments", the definition should have nothing in the parentheses ("drive()").

And to "call the [other] drive method passing in a 1" would simply be :point_right: drive(1);

Lucas Easley
Lucas Easley
691 Points

Thank you, i just got it. That was a tough one!