使用点符号访问实例变量

时间:2015-05-20 17:41:25

标签: java

我正准备参加OCJP考试。我面对以下代码:

public class Island {
    Island n;

    public static void main(String[] args) {
        Island i2 = new Island();
        Island i3 = new Island();
        Island i4 = new Island();

        i2.n = i3;
        i3.n = i4;
        i4.n = i2;

    }
}

有人可以向我解释这里发生了什么吗?

i2.n = i3;
i3.n = i4;
i4.n = i2;

详细说明我不明白i2.n背后的魔力是什么; i3.n; i4.n 我是否可以通过本地变量访问本地实例变量?

2 个答案:

答案 0 :(得分:1)

Island的每个实例都有自己的n字段版本。

使用点表示法时,您正在访问该字段,因此在您给出的示例中,您将对象的n字段的值更改为Island个对象。

i2.n = i3; // The value of n inside i2 is now i3
i3.n = i4; // The value of n inside i3 is now i4
i4.n = i2; // The value of n inside i3 is now i2

这是任何面向对象编程语言的一个非常基本的元素,所以我建议你阅读更多关于Java的内容。

答案 1 :(得分:1)

因为类型Island的成员变量n属于类Island的每个实例都是使用默认范围(包私有)声明的,所以您可以使用点直接访问该字段。

换句话说,在这种情况下,您可以访问Island n。