靜態(tài)變量和實例變量的區(qū)別?

2018-07-03 14:19 更新
  • 在語法定義上的區(qū)別:靜態(tài)變量前要加static關(guān)鍵字,而實例變量前則不加。

  • 在程序運行時的區(qū)別:實例變量屬于某個對象的屬性, 必須創(chuàng)建了實例對象(比如 new 一個), 其中的實例變量才會被分配空間, 才能使用這個實例變量. 靜態(tài)變量不屬于某個實例對象, 而是屬于類, 所以也稱為類變量, 只要程序加載了類的字節(jié)碼, 不用創(chuàng)建任何實例對象, 靜態(tài)變量就會被分配空間, 靜態(tài)變量就可以被使用了.

  • 總之,實例變量必須創(chuàng)建對象后才可以通過這個對象來使用,靜態(tài)變量則可以直接使用類名來引用.

例如, 對于下面的程序, 無論創(chuàng)建多少個實例對象, 永遠都只分配了一個staticVar變量, 并且每創(chuàng)建一個實例對象, 這個staticVar就會加; 但是, 每創(chuàng)建一個實例對象, 就會分配一個instanceVar, 即可能分配多個instanceVar, 并且每個instanceVar的值都只自加了1次.

    public class VariantTest{


    public static int staticVar = 0;
           public int instanceVar = 0;

 
           public VariantTest(){
           staticVar++;
           instanceVar++;
           System.out.println(“staticVar=” + staticVar + ”,instanceVar=”+ instanceVar);
        }
     }
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號