我会发布我的程序(轮盘赌),但它是用我的语言创建的,并且会有很多。所以这就像我的程序中的类一样。我不知道如何正确地谷歌这个问题。
requests
正如我在评论中所说,当我设置一个类'变量时,两者都会改变,即使我只想要一个。 我知道这看起来像是可怕的编程,我想也一样,但这是它对我有用的唯一方式(也是我知道如何对象的新方法)。任何建议都会很棒。
答案 0 :(得分:2)
在Java中,对象变量是通过引用定义的。这意味着当你这样做时:
someClass2.variableC1=someClass1;
您实际执行的操作是将variableC1
设置为指向存储someClass1
的内存中的位置,variableC2
的位置相同。
因此,由于两个变量都指向内存中的相同位置,因此一旦更改了此位置中的对象,就会影响它的两个指针。
答案 1 :(得分:0)
你必须记住,除非你在java中使用原语,否则一切都是引用。因此,当你将variableC1和variableC2都设置为someClass1时,它们现在都指向同一个对象。对一个的更改将反映在另一个中。
答案 2 :(得分:0)
堆栈中的类实际上是对堆中内存的引用。在Java中,类与C / C ++中的指针非常相似。
因此,当您将variableC1
和variableC2
都设置为someClass1
时,它们都会成为对堆中相同内存的引用。当您更改堆中的内存时,因为它们都引用相同的内存,所以两个变量都已更改。
答案 3 :(得分:0)
试试这个:
someClass2.variableC1=new someClass1();
someClass2.variableC2=new someClass1();
您必须使用新创建2个对象。否则,两者都将引用相同的对象,即使用 = 运算符完成的操作:复制引用,对于对象。