English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Una classe in Java avrà tre tipi di variabili, ossia, statiche (classe), d'istanza e locali.
Variabili d'istanza-Queste variabili appartengono all'istanza della classe (oggetto). Vengono dichiarate all'interno della classe ma al di fuori dei metodi. Vengono inizializzate quando si istanzia la classe. Possono essere accedute da qualsiasi metodo, costruttore o blocco della classe specifica.
Variabili di classe/statiche-Le variabili di classe/statiche appartengono alla classe, come le variabili d'istanza, vengono dichiarate all'interno della classe in qualsiasi metodo esterno, ma utilizzando la parola chiave static.
Possono essere accedute alla compilazione, è possibile accedervi prima/dopo l'istanziazione della classe, e c'è una sola copia del campo statico disponibile in tutta la classe, ovvero, il valore del campo statico è lo stesso in tutti gli oggetti. È possibile definire un campo statico utilizzando la parola chiave static.
Variabili locali-Queste variabili appartengono al metodo/blocco costruttore e vengono dichiarate/definite al loro interno. La loro portata è all'interno del metodo (o blocco o costruttore) e vengono distrutte dopo l'esecuzione.
Quindi, se si dichiara una variabile all'interno di un blocco try (lo stesso accade in qualsiasi altro blocco), la variabile sarà localizzata all'interno di quel blocco specifico e la sua vita verrà conclusa dopo l'esecuzione del blocco. Pertanto, non è possibile accedere a qualsiasi variabile dichiarata all'esterno di quel blocco.
Nell'esempio seguente, abbiamo dichiarato una variabile chiamata result e tentato di accedervi nel blocco finally, generando un errore di compilazione.
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("数组:"+Arrays.toString(arr)); System.out.println("从以下数组中选择分子和分母(输入位置0到5)"); int a = sc.nextInt(); int b = sc.nextInt(); try { int result = (arr[a])/(arr[b]); }catch(Exception e) { System.out.println("发生了异常"); } finally { System.out.println("这是finally块"); System.out.println("结果为:"+arr[a]+"/"+arr[b]+": " + result); } } }
输出结果
ExceptionExample.java:21: 错误: 找不到符号 System.out.println("结果为:"+arr[a]+"/"+arr[b]+": " + result); ^ 符号: 变量 result 位置: 类 ExceptionExample 1 错误