作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想设置一个依赖于另一个实例变量。
我尝试定义引用另一个实例变量。例如:
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/
我是一名优秀的程序员,十分优秀!