◼ 在Java中,變量的作用域分爲四個級別:
類級:類級變量又稱全局級變量或靜態變量,需要使用static關鍵字修飾,在類定義後就已經存在,佔用內存空間,可以通過類名來訪問,不需要實例化。
對象實例級:就是成員變量,實例化後纔會分配內存空間,才能訪問。
方法級:在方法內部定義的變量,即局部變量。
塊級:定義在一個塊(大括號包圍的代碼)內部的變量,變量的生存週期就是這個塊,出了這個塊就消失了,比如 if、 for 語句的塊。
public class VarDemo {
public static String name = "this is an explanation";//class level
public static int i=100;//class level
{
int i = 2;//塊級變量
}
public void method1() {
int j = 3;//method level
if (j==3) {
int k=5;//塊級變量
}//塊級變量只能在塊內部訪問
System.out.println("name = "+name+ ",i = "+i+ "j = "+j);
}
public static void main(String[] args) {
System.out.println(VarDemo.name);
VarDemo var = new VarDemo();
var.method1();
System.out.println(VarDemo.i);
}
}
output:
this is an explanation
name = this is an explanation,i = 100j = 3
100
注意1
static爲靜態變量的修飾詞;
有static修飾的屬性,不需要實例化,直接由類名+點操作符即可調用;
沒有static修飾的屬性,則爲對象實例級,//object example level,需要實例化類之後,纔可以調用;
如果第三行沒有static,寫爲
public int i=100;//則爲object example level,
System.out.println(VarDemo.i);時會提示類沒有i的屬性,但
VarDemo var = new VarDemo();//實例化後,
System.out.println(var.i);結果是可以輸出的。
注意2
JAVA不可以二次賦值同一個變量。