- 零基礎學Java(第5版)
- 黃傳祿 常建功 陳浩
- 987字
- 2020-06-17 18:13:09
3.4 變量如何初始化
在C、C++、C#等語言中,都會提到變量的初始化,有關對象類型變量的初始化將在后面的章節詳細講述,這里將把基本類型變量的初始化作為本節的主要內容。
【實例3-11】基本類型變量的初始化工作,就是給變量賦值。為了能夠更加清晰地看到變量如何初始化,以及初始化時需要注意的知識點,下面通過實例來演示。
01 //通過不同類型的數據的輸出來查看變量如何初始化 02 //所有的變量都是全局變量 03 public class Var0 //定義一個Var0類 04 { 05 byte x; //定義全局變量x 06 short y; //定義全局變量y 07 int z; //定義全局變量z 08 long a; //定義全局變量a 09 float b; //定義全局變量b 10 double c; //定義全局變量c 11 char d; //定義全局變量d 12 boolean e; //定義全局變量e 13 public static void main(String[] args) //主方法 14 { 15 Var0 m=new Var0(); //創建一個對象m 16 System.out.println(" 打印數據x="+m.x); 17 System.out.println(" 打印數據y="+m.y); 18 System.out.println(" 打印數據z="+m.z); 19 System.out.println(" 打印數據a="+m.a); 20 System.out.println(" 打印數據b="+m.b); 21 System.out.println(" 打印數據c="+m.c); 22 System.out.println(" 打印數據d="+m.d); 23 System.out.println(" 打印數據e="+m.e); 24 } 25 }
【代碼說明】第5~12行定義了8個變量,它們分別對應8種數據類型。我們并沒有為其設置初始值,第16~23行直接在控制臺輸出這些變量,讀者可以在下面的運行效果中發現有的變量具備默認值,但有的變量什么也不輸出。
【運行效果】
打印數據x=0 打印數據y=0 打印數據z=0 打印數據a=0 打印數據b=0.0 打印數據c=0.0 打印數據d= 打印數據e=false
【實例3-12】從以上例子可以看出,作為全局變量,無須初始化,系統自動給變量賦值。除了字符型數據被賦值為空,布爾型數據被賦值為false,其他一律賦值為0,下面再看一段程序代碼。
01 //通過不同類型的數據的輸出來查看變量如何初始化 02 //所有的變量都是局部變量 03 public class Var1 //定義一個Var1類 04 { 05 void printnumber() //定義一個printnumber方法 06 { 07 byte x; //定義局部變量x 08 short y; //定義局部變量y 09 int z; //定義局部變量z 10 long a; //定義局部變量a 11 float b; //定義局部變量b 12 double c; //定義局部變量c 13 char d; //定義局部變量d 14 boolean e; //定義局部變量e 15 } 16 public static void main(String[] args) //主方法 17 { 18 Var1 m=new Var1(); //創建對象m 19 System.out.println(" 打印數據x="+m.x); 20 System.out.println(" 打印數據y="+m.y); 21 System.out.println(" 打印數據z="+m.z); 22 System.out.println(" 打印數據a="+m.a); 23 System.out.println(" 打印數據b="+m.b); 24 System.out.println(" 打印數據c="+m.c); 25 System.out.println(" 打印數據d="+m.d); 26 System.out.println(" 打印數據e="+m.e); 27 } 28 )
【代碼說明】第7~14行定義了8個變量,但其被定義在printnumber()方法中,屬于局部變量。第19~26行在沒有初始化這些變量的時候,在控制臺輸出這些變量,其實是不正確的。
【運行效果】這個程序段編譯時就會報錯,原因是所有局部變量都沒有初始化。
從以上兩段程序代碼得出一個結果:全局變量可以不用進行初始化賦值工作,而局部變量必須要進行初始化賦值工作。
推薦閱讀
- MATLAB應用與實驗教程
- 游戲程序設計教程
- FLL+WRO樂高機器人競賽教程:機械、巡線與PID
- 大模型RAG實戰:RAG原理、應用與系統構建
- Scala Reactive Programming
- C++從入門到精通(第5版)
- C#開發案例精粹
- Mastering Git
- Java SE實踐教程
- Solutions Architect's Handbook
- Practical Maya Programming with Python
- 深入大型數據集:并行與分布化Python代碼
- Mastering MeteorJS Application Development
- Visual FoxPro程序設計教程
- KnockoutJS Web Development