靜態(tài)成員的特點(diǎn):
(1)static數(shù)據(jù)成員在類的內(nèi)部聲明,但只能在類的外部定義,在類的外部不能指定static,在類的定義時(shí)候進(jìn)行初始化;
(2)static數(shù)據(jù)成員只能在類的外部進(jìn)行初始化(特例:當(dāng)整型const static數(shù)據(jù)成員被常量表達(dá)式初始化時(shí),就可以在類的內(nèi)部進(jìn)行初始化,但還需要在外部進(jìn)行定義)。
(3)static數(shù)據(jù)成員可以是該成員所屬的類類型,而非static數(shù)據(jù)成員只能自身類的引用或者指針。
(4)static數(shù)據(jù)成員可以用作類成員函數(shù)的默認(rèn)實(shí)參。
(5)static數(shù)據(jù)成員的值可以改變。
靜態(tài)成員和非靜態(tài)成員的區(qū)別:
一、名稱上的區(qū)別:
成員變量也叫實(shí)例變量;靜態(tài)變量也叫類變量。
二、內(nèi)存存儲(chǔ)的區(qū)別:
成員變量存儲(chǔ)到堆內(nèi)存的對(duì)象中,靜態(tài)變量存儲(chǔ)到方法區(qū)的靜態(tài)區(qū)中。
三、生命周期不同:
1)成員變量隨著對(duì)象的出現(xiàn)而出現(xiàn),隨著對(duì)象的消失而消失。
2)靜態(tài)變量隨著類的出現(xiàn)而出現(xiàn),隨著類的消失而消失。
四、補(bǔ)充:
1.靜態(tài)變量使用 static修飾符進(jìn)行聲明;
2.在類被實(shí)例化時(shí)創(chuàng)建,通過類進(jìn)行訪問不帶有 static 修飾符聲明的變量稱作非靜態(tài)變量;
3.在對(duì)象被實(shí)例化時(shí)創(chuàng)建,通過對(duì)象進(jìn)行訪問;
4.一個(gè)類的所有實(shí)例的同一靜態(tài)變量都是同一個(gè)值,同一個(gè)類的不同實(shí)例的同一非靜態(tài)變量可以是不同的值;
5.靜態(tài)函數(shù)的實(shí)現(xiàn)里不能使用非靜態(tài)成員,如非靜態(tài)變量、非靜態(tài)函數(shù)等。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.