static關鍵字

static:靜態的 ? 特點:1:其修飾的成員變量隨著類的加載就在方法區中的靜態區開辟內存, 優先于非static修飾的成員變量開辟內存

2:修飾的成員變量是該類的所有對象共存,節約內存

3:可以通過類名和對象訪問靜態成員變量


靜態成員變量和非靜態成員變量得區別

1:存儲數據

靜態成員變量存儲的是所有對象共享的數據

非靜態成員變量存儲的是每一個實例化對象特有的數據

2:存儲位置

靜態成員變量是隨著類的加載就在方法區中的靜態區開辟內存了

非靜態成員變量是隨著每個實例化對象的創建在堆中開辟內存

3:調用方式

靜態成員變量既可以通過對象訪問也可以通過類名直接訪問

非靜態成員變量只能通過對象訪問

4:生命周期

靜態成員變量是隨著類的加載就在方法區中的靜態區中創建,程序結束才被釋放

非靜態成員變量是隨著對象的創建在堆中出現,隨著對象被垃圾回收而消失


實例成員變量---->>非靜態成員變量

類變量----->>靜態成員變量

實例成員函數---->>非靜態成員函數(既可以訪問非靜態成員變量,也可以靜態成員變量)

類函數----->>靜態成員函數(函數內只能使用靜態成員變量,不能訪問非靜態成員變量)

什么時候用static修飾

當成員變量需要被雷的所有對象共享時,當成員函數沒有用到其所屬的類的任何非靜態成員時用static

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容