定義:
實例變量:定義在一個類的各個內部方法之外,是內部方法共享的變量
局部變量:定義在方法之中的變量,但是這個方法使用的變量,其他方法和類沒法使用。
全局變量:也稱為外部變量,它是在函數外部定義的變量,一個程序的所有的java源文件都可用。
靜態全局變量:一程序由多個java源文件組成時,可以用靜態全局變量指定某一個java源文件,僅這個java文件可用這變量。
1 int a,b; //外部變量 2 static int c;//靜態外部變量 3 4 public class Sample 5 { 6 7 private int a=1; //實例變量 8 9 public void b() 10 { 11 int a=2; //局部變量 12 System.out.println("局部變量:a="+a); 13 System.out.println("實例變量:a="+this.a); 14 } 15 16 public void d() 17 { 18 System.out.println("局部變量:a="+a);//實例變量的a=1能套用在這里,局部a=2不能 19 System.out.println("實例變量:a="+this.a); 20 } 21 22 } 23 24 public class Sample 25 { 26 27 private int a=1; //實例變量 28 29 public void b() 30 { 31 int a=2; //局部變量 32 System.out.println("局部變量:a="+a); 33 System.out.println("實例變量:a="+this.a); 34 } 35 36 public void d() 37 { 38 System.out.println("局部變量:a="+a);//實例變量的a=1能套用在這里,局部a=2不能 39 System.out.println("實例變量:a="+this.a); 40 } 41 }
特點:
局部變量:
1. 局部變量要先賦值,再進行運算,而實例變量均已經賦初值。(這是局部變量和實例變量的一大區別)
2. 局部變量不允許范圍內定義兩個同名變量。實例變量的作用域在本類中完全有效,當被其他的類調用的時候也可能有效。
3. 實例變量和局部變量允許命名沖突。
實例變量:
1. 實例變量的對象賦值為null,可以 public int形式,系統自動賦值,而局部不行必須要以a=3賦值才開始運算。
局部變量:
1,使用全局變量會占用更多的內存(因為其生命期長),不過在計算機配置很高的今天,不成為什么問題,除非使用的是巨大對象的全局變量,調用全局變量的機會變多,所以會略占內存。
2,當全局變量與局部變量重名的時候,起作用的是局部變量,全局變量被屏蔽掉。
3,當一個java文件要引用另一個java里定義的一個全局變量時就要用extern
例如 A的java定義一個全局變量int a; //定義一個全局變量a
B的java想引用要extern int a; //聲明一個全局變量a B在開頭聲明引用,下面的代碼就能用此變量了。
靜態局部變量:
1. 靜態局部變量
始終存在着,也就是說它的生存期為整個源程序
2. 允許對構造類靜態局部量賦初值。若未賦以初值,系統自動賦值,數值型變量自動賦初值0,字符型變量賦空字符。