java中的局部变量

9 java variables

我经历了局部变量和类变量的概念.

但我一直怀疑
"为什么我们不能宣布local variablesstatic"?

例如
假设我们有一个play()函数:

void play( )  
{  
  static int i=5;  
  System.out.println(i);  
}
Run Code Online (Sandbox Code Playgroud)

它让我在日食中出错:Illegal modifier for parameter i;

我有这个疑问,因为我读过以下概念:

  1. 方法内部的变量:范围是局部的,即在该方法中.
  2. 当变量声明为static时,它存在于整个类中,即不存在于特定对象中.

请任何人帮助我澄清这个概念.

谢谢.

Boz*_*zho 7

因为局部变量的范围仅限于周围的块.这就是为什么他们不能从其他类或方法中引用(无论是静态还是非静态).

维基百科说关于static局部变量(例如在C++中):

静态局部变量在函数内声明,就像自动局部变量一样.它们具有与普通局部变量相同的范围,仅在"存储持续时间"方面不同:当一次调用期间,当函数再次被调用时,函数放入静态局部变量的任何值仍然存在.

这在Java中不存在.在我看来 - 为了更好.