java如何在一个函数中创建一个变量来保存调用间的值
我想知道如何以及是否可以在函数中定义一个变量,并在每次调用中累积它的值。例如:
public int foo(int num, int cost){
int sum;
sum += num*cost;
System.out.println("all costs are "+ sum);
return sum;
}
我希望变量sum
从一个调用累积到另一个调用,以便以下调用:
foo(5,3);
foo(2,8);
将打印此输出:
all costs are 15
all costs are 31
我可以用java做这个吗?如果是,那我该怎么做呢。 很抱歉,我不知道我要实现的概念。我知道用其他语言也可以做到
# 1 楼答案
您所做的是每次调用
foo()
方法时,创建具有相同名称的new object of type int
。在创建新对象时,以前的值将被覆盖但您希望保存该值以供以后使用。因此,要实现这一点,您必须更改变量的
scope
,并在函数之外声明它。因此,每个方法都可以使用它,并且可以保存其以前的值工作代码:
注意:在打印中,您使用的是
cost
,但根据输出,它应该是sum
,此外,如果您的目标是只打印它,则无需返回sum
# 2 楼答案
在java中,您可以在类上添加变量,使其看起来像这样:
然后,该变量只会在foo方法所在的类的每个实例上重置
如果你想在不同的实例中保持它,你可以这样做
相反
# 3 楼答案
您要做的是在函数外部创建一个全局变量,用于跟踪变量
像这样:
如果在方法中定义
int sum;
,每次调用该方法时,它都会覆盖变量,而这不是您想要的