gpt4 book ai didi

java - 如何在类中设置根据其他实例变量的值不断更新的实例变量?

转载 作者:行者123 更新时间:2023-12-02 01:28:35 25 4
gpt4 key购买 nike

我想设置一个依赖于另一个实例变量。

我尝试定义引用另一个实例变量。例如:

public class numbers{
int value;
int triple=3*value;
.
.
.
}

我预计,每当我通过类方法更新自变量(在示例中为 value)时,变量 triple 都会随新值一起更新value,但是当我运行调试器时,因变量保持其默认值。

最佳答案

int Triple = 3 * value; 中的赋值仅执行一次,即为当时计算的值。此后,这两个变量之间不再存在固有的绑定(bind)。

隐藏字段内部的常见模式是使用 getter 和 setter,您可以使类的行为符合您的要求。根据您希望该三元组具体表现的方式,您可以在 value 的 setter 上设置其值:

public class Numbers{
private int value;
private int triple;
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
this.triple = 3 * value;
}
public int getTriple() {
return triple;
}
}

或者你可以完全摆脱三重字段,并用一个方法替换它:

public class Numbers{
private int value;

public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
public int getTriple() {
return 3 * value;
}
}

对于这两种情况,我将 setter 保留为三重输出,因为它的行为取决于您想要在该值不能被三整除时执行的操作 - 看来您无论如何都希望该值是只读的。 .

关于java - 如何在类中设置根据其他实例变量的值不断更新的实例变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56470982/

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