另一个变量是另一个变量

时间:2013-12-05 06:16:54

标签: java variables

我有一个非常奇怪的情况。我有一个有几个成员的班级,如下:

public class myMainClass
{
    public aClass myObject = new aClass();
    private int numberOfUpdates = 0;
    public anotheClass.memberClass anotherObject = new anotheClass.memberClass();

请注意anotherClass内有一个类。 (不确定是否会进入我遇到的问题)。

aClassanotheClass.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
}

但我不是。我只做了第一个任务,但这些变量的都被修改了。

我已经跟踪并打印出诊断并使用了一个监视窗口,它清楚地修改了两个变量。

怎么会这样?我究竟做错了什么?我该如何解决?

1 个答案:

答案 0 :(得分:0)

哦,伙计。看起来我仍然没有JAVA中的参考概念。那个变量确实只是对另一个对象的引用。

现在看来我必须为该类实现一个复制方法。

Aaaargh !!