靜態變量和實例變量的區別(配圖解釋專業術語,通俗易懂)


1:首先在語法定義上區別:靜態變量前面要加static,實例變量不用

 

2:在程序運行時:

  實例變量輸入對象的屬性,必須建立了實例對象(如 new)纔會被分配空間,才能夠使用實例變量,靜態變量不屬於某個實例對象,而是屬於類,也叫類變量,只要程序加載了類的字節碼,不用建立任何實例對象就會被分配空間,就能夠被使用

3:總之,實例變量必須建立對象後才能夠經過這個對象來使用,靜態變量則能夠直接使用類名來引用。

注意:(static)靜態變量的使用也是有侷限性的,一個靜態方法中不能調用類中的非靜態的方法和變量,static修飾的變量在類加載後在內存中只有一分內存空間,能夠被一個類的全部實例對象所共享,如:總庫100張票,4個窗口賣火車票,賣的都是總庫裏的票,不管是哪一個窗口賣掉的票,總票都會減一。html

 

public class BainLiang {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //直接調用測試:
        System.out.println(QuBie.staticInt);
        // System.out.println(QuBie.shiInt);//報錯
        QuBie qb1 = new QuBie();
        QuBie qb2 = new QuBie();
        qb1.shiInt = 8;
        qb1.staticInt = 8;//這裏改變之後,再建立的對象也是會用改過的數值
        QuBie qb3 = new QuBie();
    }
}

class QuBie {
    public static int staticInt = 0;
    public int shiInt = 0;

    public QuBie() {
        staticInt++;
        shiInt++;
        System.out.println("靜態變量" + staticInt + "   實例變量" + shiInt);
    }
} 

靜態變量   這種寫法在生活中很是使用,如買火車票,一共100張,有4個窗口在賣,也就是說必定要公用一個資源,也就是要定義成static。設計模式

JAVA 基本數據類型和引用數據類經過參數傳遞詳解post

Java設計模式總彙測試

 

 

(適配器、單例、靜態代理、簡單工廠設計模式)http://www.javashuo.com/article/p-phgumgiu-mu.html

相關文章
相關標籤/搜索