English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Las clases en Java tendrán tres tipos de variables, es decir, estáticas (clase), de instancia y locales.
Variable de instancia-Estas variables pertenecen a la instancia de la clase (objeto). Estas se declaran dentro de la clase pero fuera del método. Se inicializan cuando se instancia la clase. Pueden ser accedidas desde cualquier método, constructor o bloque de la clase específica.
Clase/Variable estática-Clase/Las variables estáticas pertenecen a la clase, al igual que las variables de instancia, se declaran dentro de la clase pero fuera de cualquier método, utilizando la palabra clave static.
Pueden ser accedidos en tiempo de compilación, puede acceder a ellos antes de la instanciación./Al acceder sin instanciar la clase, hay una copia del campo estático disponible en toda la clase, es decir, el valor del campo estático es el mismo en todos los objetos. Puede definir un campo estático utilizando la palabra clave static.
Variable local-Estas variables pertenecen al método/Bloque/Constructor y declarar en él/Definición. El rango de estas variables está dentro del método (o bloque o constructor), y será destruido después de su ejecución.
Por lo tanto, si se declara una variable en un bloque try (lo que también se aplica a cualquier otro bloque), la variable estará localizada en ese bloque específico, la vida útil de la variable terminará después de la ejecución del bloque. Por lo tanto, no se puede acceder a ninguna variable declarada en un bloque externo.
En el siguiente ejemplo, declaramos una variable llamada result e intentamos acceder a ella en el bloque finally, lo que produce un error en tiempo de compilación.
import java.util.Arrays; import java.util.Scanner; public class ExceptionExample { public static void main(String [] args) { Scanner sc = new Scanner(System.in); int[] arr = {10, 20, 30, 2, 0, 8}; System.out.println("Array: "+Arrays.toString(arr)); System.out.println("Elija el numerador y el denominador (no 0) de este array (ingrese posiciones de 0 a 5)"); int a = sc.nextInt(); int b = sc.nextInt(); try { int result = (arr[a])/(arr[b]); }catch(Exception e) { System.out.println("ocurrió una excepción"); } finalmente { System.out.println("Este es finalmente bloque"); System.out.println("Result of "+arr[a]+"/"+arr[b]+: "+result); } } }
resultado de salida
ExceptionExample.java:21: error: no se puede encontrar el símbolo System.out.println("Result of "+arr[a]+"/"+arr[b]+: "+result); ^ símbolo: variable result ubicación: clase ExceptionExample 1 error