【问题标题】:How to accumulate a calling setter method with a variable inside it as argument?如何累积一个调用setter方法,其中有一个变量作为参数?
【发布时间】:2016-10-15 07:25:44
【问题描述】:

这是我对setter方法setNumber()的调用,里面有一个变量作为参数,但是我想把setter方法也累加起来,然后加上这个storeNum变量,也就是说里面的实例变量setter 方法将获取累积值并包含storeNum 值。

预期输出: setNumber(storeNum) = setNumber(storeNum) + storeNum

注意:我有同样的班级。另外,我可以直接访问实例变量,而不是调用setNumber() setter 方法,并且可以像this.number += storeNum 这样轻松地做这件事,但我想调用setter 方法累积并添加storeNum 变量值。是否可以?

编辑:

这里是setNumber()代码:

public void setNumber(int inputNumber) 
        {
            this.number = inputNumber;
        }

【问题讨论】:

  • 你能贴出 setNumber() 的代码吗
  • @Gaur93,我已经发布了代码。
  • 我不明白你想要什么,也许你可以发布一些数字来说明,也许docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/…
  • @TitanicLover 你没有得到答案还是在寻找其他东西?
  • @Gaur93,我的实例变量保持为私有,但您将其设为静态和 int。还有其他方法吗?无论如何,非常感谢您的回答,我接受了。

标签: java methods setter getter getter-setter


【解决方案1】:

您可以使用静态数据成员进行累积。例如:

class test{
static int a=0;
int b;
public void set(int b)
{
this.b=a+b;
a=a+b;
}
public static void main(String[] args) {

test t1=new test();
t1.set(4);
System.out.println(t1.b);
t1.set(5);
System.out.println(t1.b);
}

这将产生以下输出:

4
9

现在,无论何时使用 set 方法,结果都将是先前值的累积

【讨论】:

  • 考虑将 static int a 装饰为 volatile 否则您的代码可能会在多线程环境中中断
猜你喜欢
  • 2011-06-01
  • 2016-06-30
  • 2017-08-24
  • 1970-01-01
  • 2017-11-19
  • 1970-01-01
  • 2010-09-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多