Alcance de las variables en javascript
Como regla general, siempre se debe utilizar el principio del menor privilegio cuando se determina el ámbito de aplicación de una variable. Según este principio, una variable debe tener sólo la visibilidad que necesita para realizar su trabajo y no más.
El ámbito de una variable declarada en una función es desde la parte donde se declara hasta el final del cuerpo de la función. Este tipo de variable declarada dentro del cuerpo de una función se llama variable local. Por tanto, esta variable tiene ámbito local.
class Cuenta {int y = 2; // class fieldstatic void retirar(int amount){String z;for(int y=1; y<=3; y++){ // line 7System.out.println(” Recuerda ocultar tu PIN.”);}}public static void main(String args[]){withdraw(50); }}
Fíjate en el campo de la clase y en el código de la línea 7. Si declaras un parámetro o una variable local con un nombre similar al utilizado por uno de los campos de la clase, la ejecución continuará normalmente y sin errores. Esto se conoce como shadowing.
Los miembros de la clase definidos con la palabra clave static tienen ámbito de clase. Por lo tanto, las variables estáticas tienen alcance de clase. Pueden ser accedidas por todos los métodos de la clase. Para acceder a las variables públicas estáticas de una clase, utilice
Variable local
Variables de instanciaUna variable que se declara dentro de una clase y fuera de todos los métodos y bloques es una variable de instancia. El ámbito general de una variable de instancia es toda la clase excepto en los métodos estáticos. El tiempo de vida de una variable de instancia es hasta que el objeto permanezca en memoria.Variables de claseUna variable que se declara dentro de una clase, fuera de todos los bloques y está marcada como estática se conoce como una variable de clase. El ámbito general de una variable de clase es toda la clase y el tiempo de vida de una variable de clase es hasta el final del programa o mientras la clase esté cargada en memoria.Variables LocalesTodas las demás variables que no son de instancia ni de clase se tratan como variables locales, incluyendo los parámetros de un método. El alcance de una variable local está dentro del bloque en el que se declara y el tiempo de vida de una variable local es hasta que el control abandona el bloque en el que se declara.
Comentarios
Por defecto, una variable tiene acceso por defecto. Modificador de acceso por defecto significa que no declaramos explícitamente un modificador de acceso para una clase, campo, método, etc.Una variable o método declarado sin ningún modificador de control de acceso está disponible para cualquier otra clase del mismo paquete. Los campos de una interfaz son implícitamente public static final y los métodos de una interfaz son por defecto public.Java proporciona una serie de modificadores de acceso para establecer niveles de acceso para clases, variables, métodos y constructores. Los cuatro niveles de acceso son