修改Main类或main方法中的实例变量

时间:2016-11-14 03:43:38

标签: java setter instance-variables

我希望能够在运行程序时通过主驱动程序类修改类中构造函数中定义的局部变量的值。我怎么能做到这一点?

以下是我正在使用的构造函数的示例。

public Scale()
{
    weight = 0;
    unit = "kg";
}

我想在驱动程序中运行程序时修改一个点的权重值。

2 个答案:

答案 0 :(得分:1)

听起来你想给这个类一个方法,允许外部代码能够改变或“改变”类的字段状态。这种“mutator”方法通常用于Java,例如“setter”方法。在这里,public void setWeight(int weight)

public void setWeight(int weight) {
    this.weight = weight;
}

答案 1 :(得分:-1)

允许这种情况的最佳方式可能是通过一种方法。它可能像setWeight()一样简单,或者更像复杂的东西,比如在规模中添加项目......

public class Scale {

    private float weight = 0;
    private String unit = "kg";

    public void setWeight(float weight) {
        this.weight = weight;
    }

    public void addItem(Item i) {  // Assumes that Item is an interface defined somewhere else...
        this.weight += i.getWeight();
    }

    public static void main(String[] args) {
        Scale s = new Scale();
        s.setWeight(4.0F);  // sets the weight to 4kg
        s.addItem(new Item() {
            @Override
            public float getWeight() {
                return 2.0F;
            }
        });  // Adds 2kg to the previous 4kg -- total of 6kg
    }

}