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

What method is needed to be defined apart from the already defined method?

public void drive(int laps){ mBarsCount-=laps; } has been defined already, what else am I supposed to define?

GoKart.java
public class GoKart {
  public static final int MAX_BARS = 8;
  private String mColor;
  private int mBarsCount;
  public final int laps =1;
  public void drive(int laps){
  mBarsCount-=laps;
  }
  public GoKart(String color) {
    mColor = color;
    mBarsCount = 0;
    drive(1);
  }

  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;
  }

}

2 Answers

Ken Alger
STAFF
Ken Alger
Treehouse Teacher

Pujan;

Please take a look at my response here.

Post back if you are still stuck.

Happy coding,

Ken

Hi Pujan,

Consider re-watching Method Signatures, Craig explains that since Java doesn't allow for default parameter values, instead we can create a new version of a method that takes different arguments - a new method signature.

// here is a method that takes no arguments
public boolean isJavaAwesome() {
    return true;
}

// here is the same method that takes one argument, a boolean -
// this is a new method signature, or sometimes you'll hear/read this
// as method overloading
public boolean isJavaAwesome(boolean opinion) {
    if (opinion == false) {
        return true;
    } else {
        return true;
    }
}