我想知道是否有更简单的方法来增加另一个类的私有变量。以下是我通常会采用的方式:
如果我只需要在我的代码中很少这样做:
pc.setActionsCurrent(pc.getActionsCurrent()-1);
如果我需要做很多增量,我会做一个特殊的setter:
//In the PC class
public void spendAction(){
this.actionsCurrent--;
}
//In the incrementing Class
pc.spendAction();
还有更好的方法吗?如果变量是公开的
pc.actionsCurrent--;
就足够了,我不禁觉得自己过于复杂了。
答案 0 :(得分:2)
没有。方法抽象通常是实现它的方法,您也可以传递增量值(并且您可以在实现中利用它)。考虑像
这样的东西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);
}
以上将允许增量值变化(通常称为encapsulation)。
答案 1 :(得分:1)
只需定义增量方法即可。一般来说,您可以将增量作为参数提供,它可能是负数:
public void increment(int augend)
{
this.actionsCurrent += augend;
}