C 靜態成員 細談static修飾的成員

2022-02-17 11:32:24 字數 1960 閱讀 7348

首先,我們先通過字面意思來理解...

成員:成員變數、成員函式。

static  修飾成員變數,還有修飾成員函式。

static  宣告為靜態的,稱為靜態成員。不管這個類建立了多少個物件,靜態成員只有乙個拷貝,這個拷貝被所有屬於這個類的物件共享。

靜態成員,屬於類 而不是物件。

1.static 修飾成員變數

靜態變數,是在編譯階段就分配空間,物件還沒有建立時,就已經分配空間

靜態成員變數必須在類中宣告,在類外定義。

靜態資料成員不屬於某個物件,在為物件分配空間中不包括靜態成員所佔空間。

1

class

data2;

7//定義的時候不需要加static

8int data::data=100;//

類外定義+初始化910

void

tesk07()

11

1

class

data212

};13

14//

定義的時候,不需要加static

15int data::data = 100;//

類外定義+初始化

1617

void

tesk08()

18

存在問題:data靜態的 在建立物件之前 就已經存在
如果類沒有例項化物件 難道 就不能使用data了嗎? 

解決上述問題 就要用到靜態成員函式

靜態成員函式:

1

class

data212

13//

靜態成員函式,屬於類,而不屬於物件

14static

int getdatastatic(void)15

18};

1920

//定義的時候,不需要加static

21int data::data = 100;//

類外定義+初始化

2223

void

tesk08()

24

注意:1.靜態成員函式的目的,操作靜態成員資料。2.靜態成員函式,不能訪問非靜態成員資料。

3、普通成員函式 可以操作 靜態成員資料 非靜態成員資料。

3.const修飾靜態成員

如果乙個類的成員,既要實現共享,又要實現不可改變,那就要用static const修飾

1

class

data212

};13

14//

定義的時候 不需要加static

15const

int data::data=100;//

類外定義+初始化

1617

void

test02()

18

static靜態修飾

1.static 靜態的 能夠修飾 屬性 方法 塊 static修飾的屬性方法 塊,載入到記憶體的過程 1 當遇到類名,則需要通過jvm中的類載入器,先將 類這個模板先載入到 方法區中 儲存起來.2 將靜態的屬性方法挑揀出來放到 方法區中的靜態域 靜態方法區 1 靜態的屬性方法隨著類的載入而夾在,優...

static修飾成員變數

static 靜態 修飾符 static修飾成員變數 如果乙個資料需要被所有物件共享使用的時候,那麼即可使用static修飾該成員變數。訪問方式 方式1 可以使用物件進行訪問。格式 物件.靜態屬性名 方式2 可以使用類名進行訪問。格式 類名.屬性名。靜態成員變數要注意的細節 1.靜態的成員變數可以使...

Static修飾成員方法

當使用了static修飾了成員變數或者成員方法,則需要用類名稱去呼叫。就算不建立物件也可以直接用類名稱 點的方式呼叫。注意 1.靜態方法不可以直接呼叫非靜態方法或者成員。因為在記憶體中,先生成的靜態方法及變數,後生成的成員變數及方法 2.靜態方法中不可以使用this關鍵字 因為this關鍵字代表的是...