10,靜態變量和實例變量的區別?


1.從語法上的區別:

        靜態變量前面要加static關鍵字,而實例變量前不加

2.在程序運行時的區別:

       實例變量屬於某個對象的屬性,必須 創建了實例對象,其中的實例變量才會 被分配到空間,

才能使用這個實例變量。靜態 變量不屬於某個 實例對象,而是屬於類,所以稱為類變量 ,只要程序加載了

類的字節碼,不用創建任何實例對象,靜態變量就會被分配到空間,靜態變量就可以被使用了 。

總之,實例變量必須創建對象后才可以通過這個對象來使用,靜態變量則可以直接使用類名來引用。

 

代碼如下:

public class Test {
    
    public static int staticVar = 0;
    
    public int  instanceVar = 0;
    
    
    
    public Test(){
        
        staticVar++;
        
        instanceVar++;
        
        System.out.println("staticVar="+staticVar);
        
        System.out.println("instanceVar="+instanceVar);
        
    }
    
    public static void main(String[] args) {
           Test v =  new Test();
           Test v1 =  new Test();
           Test v3 =  new Test();
    }

}

 

運行結果 如下:

staticVar=1
instanceVar=1
staticVar=2
instanceVar=1
staticVar=3
instanceVar=1

代碼分析:

無論創建多少個實例對象(Test v =  new Test();),永遠都只分配了一個staticVar變量

並且每創建一個實例對象,這個staticVar就會加1;但是,每創建一個實例對象,就會分配一個instanceVar,

即可能分配多個instanceVar,並且每個instanceVar的值都只加了一次


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM