1

我有一个 GOval 对象,可以将其称为我在小程序中使用的圆。我将 GOval 对象添加到容器中,然后在将其添加到容器的行下方,我在其中键入了以下代码行:

circle.setFilled(true);
circle.setFilledColor(Color.WHITE);

但我不明白为什么这有效?因为我已经在这两行之前将圆圈添加到容器中,所以当我的小程序显示时,圆圈如何填充白色?

那么这是否意味着即使将各种对象组织到不同的层中,例如将对象发送到后面或将对象带到前面,也可以在将这些相应的对象添加到容器后完成?

4

2 回答 2

1

容器没有添加对象的副本,而是引用原始对象,因此您可以更改原始对象并在绘制/重新绘制时在容器中看到它。

于 2012-06-11T14:16:17.653 回答
1

您创建了一个名为 circle 的变量。或者更准确地说,您引用了一个名为 circle 的变量。(变量指向变量的内存位置)

当您将它添加到容器时,容器现在链接到容器中该位置的内存地址(假设您有一个基本数组,数组中的位置 0 指向该内存地址)

当您更改该内存地址处的对象时(无论您是从名为 circle 的变量还是容器对象 0 更改它)...事实是,它们指向相同的内存位置 - 相同的对象!

于 2012-06-11T14:16:28.770 回答