使用此对象递增值不起作用

时间:2018-10-19 08:44:49

标签: java

我有一个带有变量x的GridPosition类。当我尝试使用增量X轴方法中的this.x + 1来递增x的值时,则它不会在getter方法中更新值。 我必须执行this.setter(x)以更新x的值。 根据我的理解,这是当前对象,所以如果我这样做,x + 1应该可以工作并在我调用getter时返回更新后的值。

package com.robot.prob;

public class GridPosition {
    int x;

    public GridPosition(int x, int y, String f) {
        super();
        this.x = x;
    }
    public int getX() {
        return x;
    }
    public int incrementXaxis(){
        return this.x+1;
    }
}

请澄清。谢谢。

3 个答案:

答案 0 :(得分:2)

return this.x+1表示返回x +1的值,但对x值没有影响。

改为使用return ++x,它将为x加1并返回x的值。

答案 1 :(得分:1)

public int incrementXaxis() {
    return ++x;
}

答案 2 :(得分:1)

之所以发生这种情况,是因为您没有增加this.x的值,而只是返回了this.x所保持的加1的值。

因此将其更改为此:

public int incrementXaxis(){
    return ++x;// x is the variable which will be accessed by `this` over here.
              // hence it will increment the value of x and then return it.
}