首页 > 解决方案 > 如何在根据其他实例变量的值不断更新的类中设置实例变量?

问题描述

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

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

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

我希望每当我value通过类方法triple更新自变量(在示例中value

标签: javainstance-variables

解决方案


分配int triple = 3 * value;只进行一次,对当时评估的值。在那之后,这两个变量之间没有内在的绑定。

隐藏字段内部的一种常见模式是使用 getter 和 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;
    }
}

对于这两种情况,我都将设置器保留为三重,因为如果值不能被三整除,它的行为将取决于你想要做什么——看起来你希望该值无论如何都是只读的......


推荐阅读