考虑以下情况:
TRIM
methodB会使用与方法A相同的“obj”实例吗?如果没有,那么如何改变代码才能实现呢?
我为这样一个基本问题道歉,但是自从我开始学习java以来,即使在网上进行了无数次搜索之后,这个概念仍然不清楚。
答案 0 :(得分:3)
是
如果您想要将其可视化,您只需打印该对象即可查看该哈希:
public class ClassA {
private Main main;
Object obj = new Object;
public void setMain(Main main) {
this.main = main;
}
methodA() { //called first
System.out.println(obj); //you should see the same hash as in methodB
obj.someFunction();
main.someFunction();
}
methodB() { //called second
System.out.println(obj); //you should see the same hash as in methodA
obj.someOtherFunction();
}
}
答案 1 :(得分:2)
是
Java不会改变你背后的物体。
答案 2 :(得分:0)
如果您的测试用例是:
ClassA objectA = new ClassA(new Main());
objectA.methodA();
objectA.methodB();
在调用methodA()
然后methodB()
之间没有任何内容会改变obj
实例变量的值,然后是,他们都会使用相同的obj
实例