全局變量(或者屬性)的初始化問題
阿新 • • 發佈:2019-03-14
定義變量 全局 example () code 不能 進行 class 誤操作
總結:定義的全局變量(即類的屬性)——數組、基本數據類型、其他引用類型變量,
- 采用靜態初始化方式,即定義變量的同時進行初始化;
- 采用動態初始化方式,只在屬性處定義變量,初始化放在方法中進行;
- 錯誤操作:先定義屬性中的變量,接著換行再進行初始化。(詳細見下)
1.定義變量的時候,立刻初始化,即靜態初始化;
public class Test { int a = 1;//靜態初始化基本數據類型 String[] s = {"Hello","World","你好,世界"};//靜態初始化引用類型數組 Example[] e = {newExample(2019,"小明"),new Example(2018,"小紅")}; } class Example{ int id; String name; public Example(int id, String name) { this.id = id; this.name = name; } }
2.只定義,最後在方法中進行初始化;
public class Test02 { int a; String[] s; Example[] e = new Example[2];public void se(){ a = 1;//動態初始化,必須在方法中,進行 e[0] = new Example(2019,"小明");//同理,數組的動態初始化也必須在方法中進行,靜態方法或者動態方法均可 e[1] = new Example(2018,"小紅") } } class Example{ int id; String name; public Example(int id, String name) { this.id = id; this.name = name; } }
3、錯誤初始化操作(如下代碼報錯)
public class Test03 { int a; a = 1;//直接對全局變量(即屬性),先定義,接著初始化,這是錯誤的 String[] s; s = {"ab","cd","ef"}; Example[] e = new Example[2]; e[0] = new Example(2019,"小明");//同理,數組也不能這樣初始化操作 e[1] = new Example(2018,"小紅"); } class Example{ int id; String name; public Example(int id, String name) { this.id = id; this.name = name; } }
全局變量(或者屬性)的初始化問題