一.Java變量的聲明
在 Java 程序設計中,每個聲明的變量都必須分配一個類型。聲明一個變量時,應該先聲明變量的類型,隨后再聲明變量的名字。下面演示了變量的聲明方式。
double salary;
int age;
Boolean op;
其中第一項稱為變量類型,第二項稱為變量名。分號是必須的,這是 Java 語句的結束符號。
同一類型的不同變量,可以聲明在一行,也可以聲明在不同行,如果要聲明在同一行中,不同的變量之間用逗號分隔,例如下面的例子。
int studentNumber,people;
聲明變量的同時可以為變量賦值,也可以聲明以后再賦值。如:
int a=1; //聲明時賦值
int a; a=1; //聲明后賦值
注意:在程序運行過程中,空間內的值是變化的,這個內存空間就稱為變量。為了操作方便,給這個空間取了個名字,稱為變量名,內存空間內的值就是變量值。所以,申請了內存空間,變量不一定有值,要想變量有值,就必須要放入值。
例如:“int x”; 定義了變量但沒有賦值,即申請了內存空間,但沒有放入值;int x=5; 不但申請了內存空間而且還放入了值,值為 5。
注意:沒有賦值的變量,系統將按下列默認值進行初始化。
數據類型 初始值
byte 0
short 0
int 0
long 0L
char ‘\u0000’
float 0.0f
double 0
boolean false
所有引用類型 null(不引用任何對象)
二.變量的作用域(全局變量|局部變量)
根據作用域(作用范圍)來分,一般將變量分為全局變量和局部變量。從字面上理解很簡單,全局變量就是在程序范圍之內都有效的變量,而局部變量就是在程序中的一部分內是有效的。
在Java中,全局變量就是在類的整個范圍之內,都有效的變量。而局部變量就是在類中某個方法函數內或某個子類內,有效的變量,下面將從實際程序代碼中慢慢的體會。
1.全局變量示例
public class var { int a=10; public static void main(String[] args){ var v=new var(); v.print(); } void print(){ System.out.println("全局變量 a="+a); } }
運行結果:
全局變量 a=10
從以上例子可以看出,變量“a”的值在整個類中都有效。
2.局部變量示例
public class Math1 { public static void main(String[] args){ Math1 v=new Math1(); System.out.println("這個是局部變量 c="+c); } void print(){ int c = 20; } }
以上代碼在編譯時,會出現錯誤,就是找不到變量“c”。這說明變量“c”只在方法“print()”中起作用,在方法外就無法再調用。
從上述代碼中可以看出,如果一個變量在類中定義,那么這個變量就是全局變量;而在類中的方法、函數中定義的變量就是局部變量。
三.全局變量與局部變量的聲明
public class var { byte x; short y; int z; long a; float b; double c; char d; boolean e; public static void main(String[] args){ var m=new var(); System.out.println(" 打印數據 x="+m.x); System.out.println(" 打印數據 y="+m.y); System.out.println(" 打印數據 z="+m.z); System.out.println(" 打印數據 a="+m.a); System.out.println(" 打印數據 b="+m.b); System.out.println(" 打印數據 c="+m.c); System.out.println(" 打印數據 d="+m.d); System.out.println(" 打印數據 e="+m.e); } }
運行結果:
打印數據 x=0
打印數據 y=0
打印數據 z=0
打印數據 a=0
打印數據 b=0.0
打印數據 c=0.0
打印數據 d=
打印數據 e=false
從以上例子可以看出,作為全局變量,無需初始化,系統自動給變量賦值。除了字符型數據被賦值為空,布爾型數據被賦值為 false,其他一律賦值為 0。下面再看一段程序代碼段。
public class var1 { void printnumber(){ byte x; short y; int z; long a; float b; double c; char d; boolean e; } public static void main(String[] args){ var1 m=new var1(); System.out.println(" 打印數據 x="+m.x); System.out.println(" 打印數據 y="+m.y); System.out.println(" 打印數據 z="+m.z); System.out.println(" 打印數據 a="+m.a); System.out.println(" 打印數據 b="+m.b); System.out.println(" 打印數據 c="+m.c); System.out.println(" 打印數據 d="+m.d); System.out.println(" 打印數據 e="+m.e); } }
這個程序段編譯時就會報錯,原因是所有局部變量都沒有初始化。從以上兩段程序代碼得出一個結果:全局變量可以不用進行初始化賦值工作,而局部變量必須要進行初始化賦值工作。
參考:https://blog.csdn.net/weixin_38470004/article/details/76468269
