我有一个 GOval 对象,我们将其称为“circle”,我正在小程序中使用它。我将 GOval 对象添加到容器中,然后在将其添加到容器的行下方键入以下代码行:
circle.setFilled(true);
circle.setFilledColor(Color.WHITE);
但我不明白为什么这会起作用?因为我已经在这两行之前将圆圈添加到容器中,所以当我的小程序显示时,圆圈如何填充白色?
这是否意味着即使将各种对象组织到不同的层(例如将对象发送到后面或将对象置于前面)也可以在将这些相应对象添加到容器后完成?
最佳答案
您创建了一个名为“circle”的变量。或者更正确地说,您引用了一个名为“circle”的变量。 (变量指向变量的内存位置)
当您将其添加到容器时,容器现在链接到容器中该位置的内存地址(假设您有一个基本数组,数组中的位置 0 指向该内存地址)
当您更改该内存地址处的对象时(无论您是从名为 Circle 的变量还是容器对象 0 更改它)...事实是,它们指向相同的内存位置 - 相同的对象!
关于java - 即使将对象添加到容器中之后,您还可以更改对象的属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10981814/