java - 增加私有(private)变量的简单方法?

标签 java

我想知道是否有更简单的方法来增加另一个类的私有(private)变量。以下是我通常会采用的方式:

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

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);
}

以上将允许增量值变化(这通常称为 encapsulation )。

关于java - 增加私有(private)变量的简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31932867/

相关文章:

java - 使用snakeyaml将此文件解析为对象的简单方法是什么?

java - 生成用于测试的大流

java - 如何在 Android Studio 3.4 中复制和重命名项目?

java - Location Manager.RequestLocationUpdates 使用 pendingIntent 始终广播相同的位置,当 gps 提供商需要很长时间才能获取位置时

java - 处理长火 Drools 中的所有规则

java - 在 WebView 加载之前替换 fragment 时应用程序崩溃

java - ZipOutputStream 的文件大小限制?

java - 需要一个封闭的实例...?

java - 将默认时区转换为 UTC

java - 如何使用log4j.properties中的Marker来过滤某些日志?