Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Java Java Objects (Retired) Harnessing the Power of Objects Method Signatures

Gabriel Lehbert
Gabriel Lehbert
3,969 Points

Can anyone help me? I just can't get this right? I have no clue what the question even means. Someone care to explain?

I don't know how to do this code challenge. I've watched the video and understood what he said in the video but I don't understand this one. Please help.

GoKart.java
public class GoKart {
  public static final int MAX_BARS = 8;
  private String mColor;
  private int mBarsCount;

  public GoKart(String color) {
    mColor = color;
    mBarsCount = 0;
  }

  public String getColor() {
    return mColor;
  }

  public void drive(int laps) {
    // Other driving code omitted for clarity purposes
    mBarsCount -= laps;
  }

  public void charge() {
    while (!isFullyCharged()) {
      mBarsCount++;
    }
  }

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

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

}

1 Answer

Jonathan Grieve
MOD
Jonathan Grieve
Treehouse Moderator 91,253 Points

Hi Gabriel,

2 or more methods that have the same name but do slightly different things are differentiated by something called a method signature, and it's the function parameters or in this case lack thereof that give methods a signature,

In this challenge, you just need to make another function (method) with the name of drive but this time don't add any parameters like the other method. The method with the parameter performs the logic, but the new method will perform the action.

Inside the second method that you create, call the first with the value of 1 lap.

public void drive() {
 drive(1);
}
Gabriel Lehbert
Gabriel Lehbert
3,969 Points

Ah okay, this makes a lot more sense now! Thank you so much