2012-03-30 15 views

Respuesta

8

Generalmente, los programadores no necesitan declarar ninguna variable dentro de bloques estáticos, generalmente esto es solo para asegurar la inicialización de variables estáticas para uso de todas las instancias de clase (dependiendo del alcance de la variable estática).

Las variables declaradas dentro de un bloque estático serán locales a ese bloque al igual que las variables de métodos y constructores.

JDK Docs

+0

"Generalmente, los programadores no necesitan declarar ninguna variable dentro de bloques estáticos" >> ¿Por qué no? Si necesita objetos temporales para contener datos, tendrá variables en bloque estático. Piense en un escenario en el que necesite instanciar un campo estático después de hacer aritmética y desee hacer que el código sea legible 'radio de flotación estático; área de flotación estática; estática { flotación final PI = 3.14f; area = (float) (PI * Math.pow (radio, 2)); } ' – realPK

10

Las variables declaradas dentro de un bloque solo son accesibles dentro de ese bloque. Estático o no.

Las variables declaradas dentro de un método estático son estáticas. Solo pueden acceder a otras variables estáticas o variables globales.

+0

Pero a diferencia de las variables locales en C/C++ 's, esas variables no realmente "salir de su ámbito" después de las las ejecuta el bloque, ¿verdad? –

+2

El alcance de las variables en un bloque es el bloque. Después de que se ejecuta, no tiene forma de acceder a estas variables. Eso es lo que significa que las variables salgan del alcance. Un bloque estático solo se ejecuta una vez, por lo que no hay forma de que pueda volver a ingresarlo. Normalmente se usa un bloque estático para inicializar campos estáticos en la clase cuando se carga la clase y antes de que se ejecute cualquier constructor. Los campos estáticos tienen el alcance que usted les da: público, protegido por paquete, protegido, privado. –

4

son como variables de método. Solo accesible en el alcance del bloque.

0

No, no visible fuera del bloque. Actúan como variables locales; piense en un bloque estático como una función anónima que se llama en la inicialización de clase. No son miembros estáticos.

Cuestiones relacionadas