(類變數)靜態變數和例項變數的區別?
阿新 • • 發佈:2019-02-04
(1)語法定義上的區別
靜態變數用static修飾
例項變數沒有static修飾
(2)執行區別,例項區別
靜態變數在類中,不屬於例項物件,屬於類所有,只要程式載入了位元組碼,不用建立例項物件靜態變數就會被分配空間,已經可以使用。
例項變數是某個物件的屬性,只有例項化物件後,才會被分配空間,才能使用。
類變數是所有物件共有,其中一個物件將它值改變,其他物件得到的就是改變後的結果;
而例項變數則屬物件私有,某一個物件將其值改變,不影響其他物件;
例子如下:
public class SE004_LeiBianLiangAndShiLiBianLiang { public static void main(String[] args) { Demo d1 = new Demo(); Demo d2 = new Demo(); } } class Demo{ static int i = 1; //類變數(靜態變數) int j = 1; //例項變數 public Demo(){ i++; j++; System.out.println(i+":"+j); } }
執行結果
2:2
3:2
分析:靜態變數共同類所有,值改變後,在之後的例項物件中也改變!!!!
例項變數屬於當前物件所有!!!!