2012-03-30 46 views

回答

8

通常程序员不需要在静态块内声明任何变量,通常这只是为了确保初始化静态变量以供所有类的实例使用(取决于静态变量的作用域)。

在静态块中声明的变量对于块来说就像方法和构造函数变量一样是局部的。

JDK Docs

+0

“通常程序员不需要在静态块中声明任何变量”>>为什么不呢?如果您需要临时对象来保存数据,您将在静态块中包含变量。 考虑一个场景,当你需要在算术后实例化一个静态字段并且想让代码可读时 'static float radius; 静态浮动区域; 静态最终浮点数PI = 3.14f; area =(float)(PI * Math.pow(radius,2)); }' – realPK 2016-07-02 20:08:27

10

在块内声明的变量只能在该块内部访问。静态或无。

在静态方法中声明的变量是静态的。他们只能访问其他静态变量或全局变量。

+0

但不同于C/C++的局部变量,这些变量并不真正‘走出去的范围’的块执行后,对不对? – 2012-03-30 21:20:17

+2

块中的变量范围是该块。执行后,您无法访问这些变量。这就是变量超出范围的含义。一个静态块只执行一次,所以你无法重新输入它。通常情况下,使用静态块来初始化类加载时以及运行构造函数之前的类中的静态字段。静态字段具有您提供的范围:public,package protected,protected,private。 – 2012-03-31 09:23:20

4

它们就像方法变量。只能在块范围内访问。

0

不,在块之外不可见。它们像局部变量一样行动 - 将静态块视为在类初始化时被调用的匿名函数。他们不是静态成员。

相关问题