java中静态块中声明的变量的范围是什么?

java中静态块中声明的变量的范围是什么?,java,static,static-members,Java,Static,Static Members,静态块中声明的变量是否可以在其他地方访问? 它们是什么“类型”的成员(也就是说,它们是静态成员吗?块内声明的变量只能在该块内访问。静态或否 静态方法中声明的变量是静态的。它们只能访问其他静态变量或全局变量 它们类似于方法变量。只能在块范围内访问。否,在块外不可见。它们的行为类似于局部变量——将静态块视为在类初始化时被调用的匿名函数。它们不是静态成员。通常程序员不需要在静态块中声明任何变量,通常这只是为了确保初始化静态变量以供类的所有实例使用(取决于静态变量的范围) 在静态块中声明的变量将是该块的

静态块中声明的变量是否可以在其他地方访问?
它们是什么“类型”的成员(也就是说,它们是静态成员吗?

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


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

它们类似于方法变量。只能在块范围内访问。

否,在块外不可见。它们的行为类似于局部变量——将静态块视为在类初始化时被调用的匿名函数。它们不是静态成员。

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


在静态块中声明的变量将是该块的局部变量,就像方法和构造函数变量一样


但与C/C++的局部变量不同,这些变量在块执行后不会真正“超出范围”,对吗?块中变量的范围就是块。在它执行之后,您无法访问这些变量。这就是变量超出范围的含义。静态块只执行一次,因此您也无法重新输入它。通常,在加载类时以及在运行任何构造函数之前,使用静态块初始化类中的静态字段。静态字段具有您赋予它们的范围:public、package protected、protected、private。“通常程序员不需要在静态块中声明任何变量”>>为什么不呢?若您需要临时对象来保存数据,那个么静态块中将包含变量。想象一下这样一个场景:在完成算术运算后需要实例化静态字段,并希望使代码可读
静态浮点半径;静态浮动区;静态{final float PI=3.14f;面积=(float)(PI*Math.pow(半径,2));}