我正在通过Java练习进行工作,并且对最后4行代码的新值有些困惑。

public class Snake {
    public Snake x = null;
    public Snake y = null;

    public static void main(String[] args) {
        Snake a = new Snake();
        Snake b = new Snake();
        a.x = a;
        b.x = a.x;
        b.y = b.x;
        a.y = b.y.x;
    }
}

最佳答案

然后您知道ab是两条蛇。但是它们实际上是指两种不同的蛇。

a.x = a:表示使a.x引用由a引用的蛇。

b.x = a.x:表示使b.x引用由a.x引用的蛇(与a相同)。

b.y = b.x:表示使b.y引用由b.x引用的蛇(与a相同)。

a.y = b.y.x:表示使a.y引用b.y.x引用的蛇,因为b.y引用a,它引用a.x,与a相同。

关于java - 实例变量如何影响此处的构造函数的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53286149/

10-10 13:56