gpt4 book ai didi

java - 对象 a = 对象 b;对象 a 会发生什么?

转载 作者:搜寻专家 更新时间:2023-10-30 21:15:30 34 4
gpt4 key购买 nike

我的一位教授给了我们一些考试练习题,其中一个问题类似于下面(伪代码):

a.setColor(blue);
b.setColor(red);
a = b;
b.setColor(purple);
b = a;
//what color is a, and what color is b?

这对我来说似乎非常初级,所以我提出了 a 是“红色”,b 是“红色”的答案,但有人告诉我这是不正确的。我已经像解决数学问题一样分解了我的答案:

a = 15;
b = 12;
a = b; //a becomes 12
b = 13;
b = a; //b becomes 12

但我的思维过程是通过 C 的思维,而不是 Java。我认为两者都有一些通用的方法,但也许我错了?是我的答案错了还是我的教授错了?我是 Java 的新手,虽然我对 C、Python 和网络逻辑(PHP、Ruby)有一定的了解,所以如果这是微不足道的事情(确实如此),我深表歉意。

最佳答案

假设您已经创建了两个对象,并使变量 ab 引用它们,您最初得到的是这样的东西。

a -->  [ white ]     b --> [ white ]

你的前两行改变了对象的颜色,给你

a -->  [ blue  ]     b --> [  red  ]

然后,您将变量a 指向由b 引用的对象,这样它们都引用同一个对象。你现在有

       [ blue  ]     b --> [  red  ] <-- a

然后更改 b 引用的对象的颜色。

       [ blue  ]     b --> [ purple ] <-- a

最后,行 b=a; 什么都不做,因为 b 已经引用了与 a 相同的对象。

关于java - 对象 a = 对象 b;对象 a 会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19504839/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com