gpt4 book ai didi

java - 如何检索对象

转载 作者:行者123 更新时间:2023-12-02 05:48:19 26 4
gpt4 key购买 nike

Class2中,我想检索在init类中传递的objects(obj1,2)方法变量。但我总是在 Class2 中获得 0 值。请建议如何获取Class2中的obj1,2变量。谢谢!

public class Class1 {
public int Value;

public void setMethod(int val) {
this.Value = val;
}

public int getMethod() {
return Value;
}
}

//initialization class
import Class1;

public class init {
Class1 obj1 = new Class1();
Class1 obj2 = new Class1();
obj1.setMethod(10);
obj2.setMethod(20);
System.out.println("obj1 value is" + obj1.getMethod()); // it will print 10
System.out.println("obj2 value is" + obj2.getMethod()); // it will print 20
}

//another class where I want my obj1, obj2 method variables to retrieve
import Class1;

private class Class2 {
Class1 obj1 = new Class1();
System.out.println("obj1 value is" + obj1.getMethod()); // it is printing 0
}

最佳答案

请确保您首先了解类和对象(类的实例)之间的区别。

对于我的回答的其余部分,我假设您有包含以下语句的方法或构造函数

您的代码创建三个对象:

  • init 类中的 obj1,Class1 类的实例
  • obj2 也在 init 类中,是 Class2 类的实例
  • 类 2 中的 obj1

Class2 中的实例从未初始化。因此,值为 0。

如果您需要将 Class1 的实例传递给 Class2,您可以在构造函数中执行此操作:

class Class1 {
...
}

class Class2 {
// an instance of Class2 holds a reference to an instance of Class1
private Class1 obj1;

Class2(Class1 obj1) {
this.obj1 = obj1;
}
}

public class Main {
public static final void main(String... args) {
Class1 obj1 = new Class1();
Class2 obj2 = new Class2(obj1);
}
}

关于java - 如何检索对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56074328/

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