靜態變數與靜態方法

2021-10-12 06:55:49 字數 1633 閱讀 8776

​ 被static修飾的成員變數就是靜態變數。靜態變數被該類下所有的物件所共享。

物件空間中就沒有這個成員變數,存在方法區的靜態區。

獲取值:

​ 物件名.屬性名【實際開發堅決不用】

​ 類名.屬性名

修改值:

​ 物件名.屬性名 = 新值【實際開發堅決不用】

​ 類名.屬性名 = 新值

**示例:

person類: 

public

class

person

測試類:

public

class

testperson

}

1、記憶體空間不一致

​      靜態變數:存在於方法區的靜態區

​      非靜態變數:

​            全域性變數:堆空間的物件空間中

​            區域性變數:棧空間

2、所屬不同:

​      靜態變數:屬於類

​      非靜態變數:

​            全域性變數:屬於物件

​            區域性變數:屬於方法

3、生命週期不同:

​      靜態變數:隨著類的載入而載入 隨著類的消失而消失

​      非靜態變數:

​            全域性變數:隨著物件的建立而建立 隨著物件的消失而消失

​            區域性變數:隨著方法的執行而建立 隨著方法的停止而消失

4、呼叫方式不同:

​      靜態變數:類名呼叫

​      非靜態變數:

​            全域性變數:物件呼叫

​            區域性變數:直接使用

​ 被static修飾的方法就是靜態方法 比如:main方法

​ 屬於類,被物件共享但是呼叫不使用物件呼叫,可以使用類名直接呼叫

​ 1、只能使用靜態資源【靜態變數和靜態方法】,不能訪問外界非靜態成員(因為在靜態訪問非靜態的時候,非靜態還不存在)

靜態方法中沒有物件this,所以不能訪問非靜態成員

2、因為靜態先於物件的存在而存在,所以靜態方法中不能出現thissuper關鍵字。

3、可以定義非靜態的變數,不能定義靜態變數

4、非靜態方法可以訪問靜態成員,也可以訪問非靜態成員

只需要訪問靜態成員時;

不需要訪問物件狀態,所需引數都由引數列表顯示提供

**示例:

person類:

public

class

person

public

static

void

work()

} 測試類:

public

class

testperson

}

靜態變數與靜態方法

static 可實現所有的物件共享乙個成員變數。被 static 修飾的成員稱為靜態成員或類成員。它屬於整個類所有,而不是某個物件所有,即被類的所有物件所共享。訪問static成員變數有兩種方式 直接用類名.成員變數名訪問 定義類的物件,使用物件.成員變數名訪問。public class name ...

靜態變數與靜態方法

使用static修飾的方法稱作靜態方法,又稱類方法。同樣的,使用static修飾的變數又稱作類變數或者靜態變數。靜態方法有如下特點 1 應該通過類名直接呼叫,不用通過引用呼叫。2 方法內部 只能夠使用本方法內的區域性變數 方法的引數 靜態變數和靜態方法。不能使用非靜態的變數和非靜態的方法。同樣也不能...

靜態域 靜態變數 靜態方法

static關鍵字修飾的域 class employee 這裡employee物件有乙個例項域id和乙個靜態域nextid,每乙個employee物件都有乙個例項域id,但是所有的物件共享乙個靜態域nextid。假設有1000個employee物件,則有1000個例項域id,但是,只有乙個靜態域ne...