靜態變量與實例變量的區別

/**
 * 靜態變量與實例變量的區別
 * <p>
 * 靜態變量: 靜態變量不屬於某個實例對象,而是屬於類,所以也稱爲類變量,只要程序加載了類的字節碼,
 * 不用創建任何實例對象,靜態變量就會被分配空間,靜態變量就可以被使用了
 * <p>
 * 實例變量:實例變量屬於某個對象的屬性,必須創建了實例對象,
 * 其中的實例變量纔會被分配空間,才能使用這個實例變量
 * <p>
 * 結論:實例變量必須創建對象後纔可以通過這個對象來使用,靜態變量則可以直接使用類名來引用。
 */
public class test1 {
    public static int staticTest1 = 0;//靜態變量
    public int test1 = 0;//實例變量:

    public test1() {
        staticTest1++;
        test1++;
        System.out.println("staticTest1=" + staticTest1 + ",test1=" + test1);
    }


    public static void main(String[] args) {
        test1 a = new test1();
        test1 b = new test1();
        //結果:staticTest1=1,test1=1
        //      staticTest1=2,test1=1
        //無論創建多少個實例對象,永遠都只分配了一個staticTest1變量,並且每創建一個實例對象,這個staticTest1就會加
        // 每創建一個實例對象,就會分配一個test1,即可能分配多個test1,並且每個test1的值都只自加了1

    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章