java - 即使将对象添加到容器中之后,您还可以更改对象的属性吗?

标签 java user-interface applet awt java-2d

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

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

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

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

最佳答案

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

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

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

关于java - 即使将对象添加到容器中之后,您还可以更改对象的属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10981814/

相关文章:

java - Spring JPA和Hibernate在调用save方法时不将实体保存到数据库

java - null 值被视为对象或数组

java - 网络游戏状态更改时小程序游戏更新屏幕

java - fillRect() 中的负数

java - 在 java Rest API 中使用 json POST 请求的问题

java - 使用 -gc true 在 Java 12 与 Java 8 上的流 API 的神秘微基准测试结果

java - JPanel 中的 JButton 方向

java - 我如何在一个类中拥有 JTextArea,并打印到另一个类中的 JTextArea?

php - 构建协作工具 - 检查用户当前是否正在编辑/拖动元素并显示对话框

java - 使用 Gradle 运行 java 小程序