1. 程式人生 > >(類變數)靜態變數和例項變數的區別?

(類變數)靜態變數和例項變數的區別?

(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

分析:靜態變數共同類所有,值改變後,在之後的例項物件中也改變!!!!

例項變數屬於當前物件所有!!!!