0
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 になるはずだと思いました。ここで何が起こっているのか説明してもらえますか?

4

2 に答える 2