static與實質變量的區別

來源:魅力女性吧 2.11W
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。

熱門標籤