所以这可能是一个非常简单的问题,我想太多了,但如果我执行以下操作:
class A{
public String test_string = "before (default)";
public A(){
B b = new B(this);
}
public void testA(){
this.test_string = "after (new)";
}
}
其中 B 是:
class B{
private A parent;
public B(A mParent){
parent = mParent;
}
private void testB(){
System.out.println(parent.test_string);
}
}
这是否允许我仍然访问A
(其所有公共字段和方法)的同一实例?如果我A.testA()
在 的特定实例的其他地方从另一个类调用A
,B
在那个A
构造函数的testB
函数中构造的那个会返回"after (new)"
字符串吗?或者那是A
因为java不是按值分配而不是引用的副本?有没有更好的方法来做到这一点?我只是把问题复杂化了吗?
我不确定要搜索什么,所以我找不到其他可以回答我问题的问题。
提前致谢!