为什么Java方法中不允许使用静态变量,因为它们在C/C++函数中?

bn.*_*bn. 1 c c++ java variables

CC++中,您可以:

void foo()
{
   static int i = 0;
   ++i;
}
Run Code Online (Sandbox Code Playgroud)

但是,在Java中你会得到一个'Illegal modifier for parameter'错误:

public void foo()
{
    static int i =0;
   ++i;
}
Run Code Online (Sandbox Code Playgroud)

我不是在寻找原因,为什么或为什么不这是一个好/坏的想法.我只是好奇为什么这在C/C++中是合法的,而不是Java.

Pet*_*rey 7

Java是一种功能不佳的语言.它不愿意添加除最简单集之外的功能,这将允许您编写好的程序.这意味着许多不起眼的功能,甚至一些非常有用的功能在其他语言中都不可用于Java,因为通常有另一种方法可以做同样的事情,或者更好的方式,或者他们已经确定它是一种功能,如果没有它你会更好.

在这种情况下,我怀疑是因为你可以将字段放在方法之外并做同样的事情.

BTW:Java确实有方法本地命名类,很少使用它们,如果它们是极简主义的,Java并不真正需要它们.;)