gpt4 book ai didi

java - 类中的类设置变量会更改所有变量

转载 作者:行者123 更新时间:2023-12-02 04:05:16 25 4
gpt4 key购买 nike

我会发布我的程序(轮盘赌),但它是用我的语言创建的,并且会有很多。所以这和我的程序中的类(class)完全一样。我不知道如何正确谷歌搜索这个问题。

Class Class1{
int variable1=0;
}
Class Class2{
Class1 variableC1;
Class1 variableC2;
}
void main(){
Class2 someClass2 = new Class2();
Class1 someClass1 = new Class1();

someClass2.variableC1=someClass1;
someClass2.variableC2=someClass1;//that's the way I have to set them in my program, or else it doesn't work

someClass2.variableC1.variable1=1001; //now this will set both the variableC1 and variableC2 to 1001, even tho i want variableC2.variable1 to stay at 0

}

正如我在评论中所说,当我设置一个类的变量时,即使我只想要一个变量,两者也会发生变化。
我知道这看起来像可怕的编程,我也这么认为,但这是它对我有用的唯一方法(也是我知道如何做的唯一方法,对对象不熟悉)。任何建议都会很棒。

最佳答案

在 Java 中,对象变量是通过引用定义的。这意味着当您这样做时:

someClass2.variableC1=someClass1;

您实际上所做的是将variableC1设置为指向内存中存储someClass1的位置,对于variableC2也是如此。

因此,由于两个变量都指向内存中的同一位置,因此一旦更改该位置中的对象,指向它的两个指针都会受到影响。

关于java - 类中的类设置变量会更改所有变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34364349/

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