gpt4 book ai didi

java - 如何在多个类之间传递一个对象? java

转载 作者:行者123 更新时间:2023-11-30 06:33:57 26 4
gpt4 key购买 nike

public class FooClass {
BarClass bar = null;
int a = 0;
int b = 1;
int c = 2;

public FooClass(BarClass bar) {
this.bar = bar;
bar.setFoo(this);
}
}

public class BarClass {
FooClass foo = null;

public BarClass(){}

public void setFoo(FooClass foo) {
this.foo = foo;
}
}

其他地方...

BarClass theBar = new BarClass();
FooClass theFoo = new FooClass(theBar);
theFoo.a //should be 0
theBar.foo.a = 234; //I change the variable through theBar. Imagine all the variables are private and there are getters/setters.

theFoo.a //should be 234 <-----

我怎样才能将一个对象传递给另一个类,进行更改,然后让该更改出现在第一个对象的原始实例中?

如何创建一个循环,使一个类的更改反射(reflect)在另一个类中?

最佳答案

这正是对象在 Java 中的工作方式。您的代码已经完成了您希望它做的事情。

当您将 theBar 传递给 FooClass 构造函数时,就是传递 theBar 的值,这是一个引用BarClass 对象。 (theBar 本身是按值传递的 - 如果您在 BarClass 构造函数中编写了 foo = new FooClass();,那不会改变 which object theBar referenced.Java是严格按值传递的,只是值通常是引用。)

当您使用 theBar.foo.a 更改该对象中的值时,然后再次使用 theFoo.a 查看 a 的值> 将看到更新后的值。

基本上,除非您真的要求,否则 Java 不会复制对象。

关于java - 如何在多个类之间传递一个对象? java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7537526/

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