有關變量的聲明和初始化的問題
阿新 • • 發佈:2017-05-31
stat 對象實例 實例 [] ima als void img 比較
1.馬上就要考java了,於是刷幾道題,題目不難但是比較基礎,比較細節,其中一道題目如下:
為了弄明白那些變量需要提前聲明,我做了如下幾個小測試:
測試一:
1 package priv.xiaomin.test; 2 3 public class Test { 4 private static boolean test; 5 public static void main(String[] args) { 6 System.out.println(test); 7 } 8 }
測試結果:false;
測試二:
1 package priv.xiaomin.test;2 3 public class Test { 4 private static boolean test; 5 public static void main(String[] args) { 6 int a; 7 System.out.println(test); 8 System.out.println(a); 9 } 10 }
提示錯誤,不能進行編譯
測試三:
1 package priv.xiaomin.test; 2 3 public class Test { 4 privatestatic boolean test; 5 private int a; 6 public static void main(String[] args) { 7 System.out.println(test); 8 Test m = new Test(); 9 System.out.println(m.a); 10 } 11 }
測試結果:false 0
由此得出結論:
1.類的變量成員,是成員方法體外聲明的變量,在生成對象實例時,系統會自動賦值,而在方法體內聲明的變量,即局部變量,需要由語句顯式地賦初值,否則會產生編譯錯誤。
2.在類的內部,最先初始化靜態成員,靜態成員只在第一次訪問時初始化一次。
有關變量的聲明和初始化的問題