Java 增加私有变量的简单方法?

Java 增加私有变量的简单方法?,java,Java,我想知道是否有更简单的方法来增加另一个类的私有变量。我通常会这样做: 如果我只需要在代码中很少这样做: pc.setActionsCurrent(pc.getActionsCurrent()-1); 如果我需要做大量的递增,我只需要做一个特殊的setter: //In the PC class public void spendAction(){ this.actionsCurrent--; } //In the incrementing Class pc.spendAction()

我想知道是否有更简单的方法来增加另一个类的私有变量。我通常会这样做:

如果我只需要在代码中很少这样做:

pc.setActionsCurrent(pc.getActionsCurrent()-1);
如果我需要做大量的递增,我只需要做一个特殊的setter:

//In the PC class
public void spendAction(){
    this.actionsCurrent--;
}

//In the incrementing Class
pc.spendAction();
有没有更好的办法?如果变量是公共的

pc.actionsCurrent--;

这就足够了,我忍不住觉得事情太复杂了。

不。方法抽象通常是解决这个问题的方法,您也可以传递增量值(您可以在实现中利用它)。考虑一些类似

private long increment = 1;
private long myVariable = 0;
public void setMyVariable(long myVariable) {
    this.myVariable = myVariable;
}
public void setIncrement(long increment) {
    this.increment = increment;
}
public long getMyVariable() {
    return this.myVariable;
}
public void addToMyVariable(long val) {
   this.myVariable += val;
}
public void incrementMyVariable() {
   addToMyVariable(increment);
}

上述方法允许增量值发生变化(通常称之为)。

只需定义一个增量方法即可。出于一般性考虑,您可以将增量作为参数提供,它可以是负数:

public void increment(int augend)
{
    this.actionsCurrent += augend;
}

为该私有字段定义一个getter/setter。这是进行此操作的标准方法。封装。您的私有变量不应该被另一个对象更改。无论您在哪里说递增,但您的代码说您在递减。如果您的变量是公共的,那么什么比object.propertyName++;或object.propertyName--;当我开始编程时,我也有同样的感觉。代码太多,不能仅仅为了将一个变量减少一个而编写。但我后来就习惯了。OP问的是简单的方法。@PiyushMittal Pay a programmer?我想你给出的代码片段有点复杂@Elliott这就是我的专业塞特示例?我所要寻找的是在私有变量上执行++或-,的最简单方法。但是如果我需要更复杂的增量,我会记住你的例子。我看不出将增量作为成员变量有什么意义。将其作为参数提供要简单得多。否则,它与原始代码没有太大区别,并且具有相同的计时窗口问题。