當前位置:聚美館>智慧生活>心理>

static與實質變量的區別

心理 閱讀(2.16W)
static與實質變量的區別

在程序執行時的區別:實例變量屬於一個對象,必須先創建實例對象,它的實例變量纔會被分配空間,才能使用這個實例變量。靜態變量則屬於類,所以也稱爲類變量,只要程序加載了類的字節碼,不用創建任何實例對象,靜態變量就會被分配空間,靜態變量就可以被使用了。總之,實例變量必須創建對象後纔可以透過這個對象來使用,靜態變量則可以直接使用類名來引用。

例如,對於下面的程序:

public class VarTest

{

public static int staticVar = 0

public int instanceVar = 0

public VarTest ()

{

staticVar++

instanceVar++

tln(“staticVar=” + staticVar + ”,instanceVar=” + instanceVar)

}

}

上面程序中的staticVar變量隨VarTest類初始化而分配內存、執行初始化的,以後無論創建多少個實例對象,不會再分配staticVar變量,因此用永遠只有一個staticVar變量。

但instanceVar變量則是隨着VarTest對象初始化而分配內存、執行初始化的,因此每創建一個實例對象,就會分配一個instanceVar,即可以分配多個instanceVar。因此上面程序中每創建一個VarTest對象,staticVar的值就會自加一,但每個VarTest對象的instanceVar最多隻自加1。