public class Backhand {
int state = 0;
Backhand(int s) {
state = s;
}
public static void main(String... hi) {
Backhand b1 = new Backhand(1);
Backhand b2 = new Backhand(2);
System.out.println( b2.go(b2));
}
int go(Backhand b) {
if(this.state ==2) {
b.state = 5;
go(this);
}
return ++this.state;
}
}
これを実行すると、7 が出力されます。 ++this.state;
メソッド go で 1 回だけ実行すると、出力は 6 になるはずだと思いました。ここで何が起こっているのか説明してもらえますか?