在java中使用带有局部变量的显示方法

时间:2013-02-26 21:39:25

标签: java

所以我必须为发票编写一个程序,我在本地定义变量而不是全局变量。所以它看起来像我拥有它的方式。

public void setAmount(int anyAmount)
{ 
int amount;
amount = anyAmount;
}

然后我按照这样做显示方法并得到一个错误,说找不到符号

public void displayInvoice()
{
System.out.println("Amount: " + amount);

我可以轻松地在全球范围内做到这一点,但遇到麻烦。谢谢!

2 个答案:

答案 0 :(得分:3)

在函数内部声明变量时,例如在setAmount中,只有在该函数执行时才存在;它只存在于{和}之间。这就是为什么你以后在第二个函数中无法引用它,因为它不再存在。从本质上讲,你正在做的是设置它,然后通过你的代码不费力地立即删除它,而只是通过内存在程序中分配和使用的方式。

解决这个问题的方法是使用你所说的“全局”,或者在设置之后将其传回,并将其放入另一个变量中,然后将其发送到displayInvoice函数。最后一个方法要求setAmount和displayInvoice本身是一个较大函数的一部分,并在其中声明中间变量。总而言之,正如您所说,“全球”是最简单的,也可能是最佳解决方案。

不工作的例子:

main() {
   int amount = 0;
   amount = setAmount(5);
   displayInvoice(amount);
}

虽然这样做,你也可以放弃setAmount函数,因为你可以看到它是相当多余的。保持设定金额,您需要将其更改为

Public int setAmount(int anyAmount)

答案 1 :(得分:0)

当你在一个方法中声明一个变量时,它变成局部意味着它只在那个方法中可见,这就是你得到那个错误的原因,你可以通过使它成为全局来纠正它。