java - 如何获取在 A 类中设置的 C 类中的 getter 值(在 B 类中声明)

标签 java

我有三个类 A 类设置值,B 类创建 getter 和 setter,B 类获取值(在 A 类中设置)

因为我在 A 类和 C 类中创建了 B 类的新实例。我无法在 A 类中设置的 C 类中获取值。

我承认的是我们需要将对 C 类实例的引用从 A 类传递到 B 类。

但是我不知道怎么做。

我试过这段代码。我知道结果是不可能的。我不知道该怎么做。

public Class A {
    int X = 9;
    B b = new B();
    b.setValue(X);
}

public Class B {
    private float value = 0;
    public float getValue() {
        return value;
    }
    public void setValue(float value){
        this.value = value;
    }
}

public Class C {
    B b = new B();
    final float x = b.getValue();
}

我希望当我在 C 类中使用 B 类的 getValue() 方法时,我能够通过 setValue() 方法获取 A 类中的值

最佳答案

每当您使用“new”关键字创建一个对象时,请记住您正在创建一个新对象并为其分配一个新的内存空间。 现在在类C中,当你新建一个B的对象时,会为这个实例b分配一个新的内存空间。 (此实例 b 与类 A 中的 b 指向的内存位置不同) 创建对象后,您立即调用 b.getValue(),它只会为您提供默认值“value”。

when I use getValue() method of class B in Class C. I am able to get the value putted in Class A by setValue() method

为了得到A中设置的值,需要调用b的getValue() -- 属于 A 类的对象 b (而不是在类 C 中声明的对象 b)

因此您需要在 C 类中使用 a.b.getValue() 访问它。

关于java - 如何获取在 A 类中设置的 C 类中的 getter 值(在 B 类中声明),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53928111/

相关文章:

java - libGDX 正交相机 View 尺寸(使用 Box2D)

java - 在 Web 应用程序中记录用户 Activity

java - 使用正则表达式验证密码

java - "Fix"Java 应用程序窗口在辅助监视器分离时隐藏

java - 等待服务器给出的答复给定的时间

java - 多线程场景下的数据可见性

java - 如何将线程安全参数/对象传递到我的 Fitnesse Fixture?

java - 如果 javafx 中节点超出其边界,是否可以自动调整 Pane 大小

java - 在 VSCODE 中调试 Java 项目

java - System.loadLibrary 失败,错误为 : java. lang.UnsatisfiedLinkError:dlopen 失败:无法找到符号 "__aeabi_memmove4"