我有一个非常奇怪的情况。我有一个有几个成员的班级,如下:
public class myMainClass
{
public aClass myObject = new aClass();
private int numberOfUpdates = 0;
public anotheClass.memberClass anotherObject = new anotheClass.memberClass();
请注意anotherClass
内有一个类。 (不确定是否会进入我遇到的问题)。
aClass
和anotheClass.memberClass
都有一个名称相同的成员ThisMember
。
我在myMainClass
中也有一个方法可以对myMainClass
对象的成员进行一些修改:
public void Update(double aPassedInNumber)
{
anotherObject.ThisMember = aPassedInNumber;
//etc
}
我仅修改一个成员。但是,当我这样做时,myObject.ThisMember
也被修改为相同的值!就好像(??)两个成员变量在内存中占据相同的位置。或者那个人在某种程度上是对另一个的引用。
就好像我做了一样:
public void Update(double aPassedInNumber)
{
anotherObject.ThisMember = aPassedInNumber;
myObject = aPassedInNumber;
//etc
}
但我不是。我只做了第一个任务,但这些变量的都被修改了。
我已经跟踪并打印出诊断并使用了一个监视窗口,它清楚地修改了两个变量。
怎么会这样?我究竟做错了什么?我该如何解决?
答案 0 :(得分:0)
哦,伙计。看起来我仍然没有JAVA中的参考概念。那个变量确实只是对另一个对象的引用。
现在看来我必须为该类实现一个复制方法。
Aaaargh !!