關於static的一些理解

2021-07-27 02:35:13 字數 948 閱讀 6261

static:靜態的

當new乙個物件修改static修飾的值後,再new其他物件再呼叫這個值,將會是修改後的值。

static修飾的內容是屬於類的,是為了告訴別人static後面的是公共的,最好不要修改,修改後會影響其他人。

用法:是乙個修飾符,用於修飾成員(成員函式和成員變數)。

注意:static修飾區域性函式和區域性變數是沒有意義的,因為方法中的內容當執行完後是無效的。靜態修飾的內容被物件所共享,當成員被靜態修飾後,就多了一種呼叫方式,就是被類名呼叫(使用時推薦用類名呼叫)

static的特點

1隨著類的載入而載入,隨著類的消失而消失,說明它的生命週期很長

2比物件先存在於記憶體中

3被所有物件所共享

4可以直接被類名所呼叫

靜態的使用注意;

1靜態方法只能訪問靜態成員

2非靜態方法既可以訪問靜態也可以訪問非靜態

3靜態方法中不可以定義this,super關鍵字

因為靜態優先於物件存在,所以靜態方法中不可以出現this

靜態有利有弊

利:對物件的共享資料進行單獨空間的儲存,節省記憶體,沒有必要每乙個物件中儲存乙份

可以直接被類名呼叫

弊:生命週期過長,訪問出現侷限性(靜態雖好,只能訪問靜態)

什麼時候定義靜態變數呢

當物件中出現共享資料時,該資料就要被靜態所修飾

物件中的特有資料要定義成非靜態存在於堆記憶體中

什麼時候定義靜態函式呢

當功能內部沒有訪問到非靜態資料時,那麼該功能可以定義成靜態的

乙個類中會有乙個空引數的建構函式

這個預設的建構函式和所屬類一致

如果類被public修飾,那麼預設的建構函式也需public修飾

預設建構函式的許可權隨著類的變化而變化

靜態的應用:

每乙個應用程式中都有共性的內容,可以將這些功能封裝抽取,以便復用

關於static的一些理解

分兩種情況來了解 static修飾成員變數時,該變數屬於類變數 什麼時候適合用它來修飾成員變數呢?當乙個資料具有共享性質的時候就應該考慮使用 也可以理解資料具有聚合性,例如公司的部門名稱,它是相對於部門成員共享的,部門成員聚合在一起形成了這個部門 static修飾成員方法時,該方法屬於類方法 要注意...

關於static(靜態)變數的一些理解

關鍵字static就是靜態的意思,被static修飾的變數就是靜態變數,對於靜態變數和普通變數有很多區別 include include using namespace std void fun int i 運算結果 3 對上述函式,當呼叫fun 1 時,value被初始化為1 i為2 下乙個語句v...

關於static的一些想法

o 今天在c 上機的時候,想通過例項化的乙個物件呼叫類裡面的乙個靜態方法,結果vs報錯。r 重新查了一下課本,發現static修飾的方法都是靜態方法。i 靜態方法與非靜態方法的區別 靜態方法不屬於類的某乙個具體物件 例項 而是屬於類所有,因此,通過類名呼叫靜態方法。非靜態方法可以訪問類中的任何成員,...