Java Java Objects Harnessing the Power of Objects Changing State

Jason Scruggs
Jason Scruggs
565 Points

How to create a method named "charge"

I'm confused about how to create the method. Do I first need to create a variable (?) named charge? Is the method defined inside the curly brackets? Any help is appreciated.

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

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

  private int barCount; 


  public String getColor() {
    return color;
  }
}

2 Answers

public GoKart(String color)

This defines the method Gokart

Nathaniel Meyer
Nathaniel Meyer
8,175 Points

Methods are defined like rather like functions. The variable you need, barCount, is already defined.

The method could look like this:

public void charge() { barCount = MAX_BARS; }

And it can go anywhere inside the class (except not inside another method) like this:

class GoKart { public static final int MAX_BARS = 8; private String color;

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

private int barCount;

public String getColor() { return color; }

public void charge() { barCount = MAX_BARS; } }

It's good housekeeping to put variables and constants at the top of the class, then the constructor (which you call with the "new" keyword when you make a new GoKart), then getters and setters, and then other methods.

Lastly, I used the keyword void assuming this method doesn't need to report back. If you needed the method to report its success or failure you could declare it boolean and return true (if it charges successfully) or false (if it's already full charged.) That could look like this:

public boolean charge() { if (barCount < MAX_BARS) { barCount = MAX_BARS; return true; } return false; }