Ваш вопрос несколько сомнительный. Возможно, я неправильно понял, и в этом случае этот ответ не имеет значения; в этом случае, пожалуйста, отредактируйте вопрос или подождите, пока кто-то выполнит то, что вы здесь задаете.
Это звучит как будто вы не понимаете, как передача переменных работает в java , Когда у вас есть метод public int getX() { return this.x; }
, он буквально возвращает точное значение. После его вызова извлекается текущее значение поля x и возвращается. По сути, это копия. Если затем вы берете это значение и присваиваете его своей собственной переменной (даже если вы тоже называете ее 'x' - это несущественно, чистое совпадение, что оба бита кода выбрали одно и то же имя), у вас есть копия. Если вы потом возитесь с ним, вы просто возитесь с копией.
В java нет способа изменить это поведение. Либо обновите переменную напрямую, например, написав: void setX(int newX) {this.x = newX; }
и выполнив: f.setX(f.getX() + 1)
, либо используйте изменяемый контейнер, например AtomicInteger
.