public class gas_station {
    int start = 0;
    public int commonMethod (int[] gas, int[] cost) {
        int len = gas.length;
        while (this.start < len) {
            if (canComplete(this.start, gas, cost)) {
                return this.start;
            }
        }
        return -1;
    }
    public boolean canComplete (int index, int[] gas, int[] cost) {
        int len = gas.length, sum = 0;
        for (int i = index; i < len + index; i++) {
            sum += gas[i % len] - cost[i % len];
            if (sum < 0) {
                this.start = i + 1;
                return false;
            }
        }
        return true;
    }
}
As you can see, in the canComplete function, I make changes to class member start, and in the commonMethod function, I use it as the loop variable, my question is, is there a way I can make change in the canComplete function and influence the variable in the caller function (here, commonMethod function) instead of making a variable (start) a class member, I know in C++, I can pass a pointer to a function, but what should I do in Java? Thanks!
 
     
    