首先,我們先通過字面意思來理解...
成員:成員變數、成員函式。
static 修飾成員變數,還有修飾成員函式。
static 宣告為靜態的,稱為靜態成員。不管這個類建立了多少個物件,靜態成員只有乙個拷貝,這個拷貝被所有屬於這個類的物件共享。
靜態成員,屬於類 而不是物件。
1.static 修飾成員變數
靜態變數,是在編譯階段就分配空間,物件還沒有建立時,就已經分配空間
靜態成員變數必須在類中宣告,在類外定義。
靜態資料成員不屬於某個物件,在為物件分配空間中不包括靜態成員所佔空間。
1class
data2;
7//定義的時候不需要加static
8int data::data=100;//
類外定義+初始化910
void
tesk07()
11
1class
data212
};13
14//
定義的時候,不需要加static
15int data::data = 100;//
類外定義+初始化
1617
void
tesk08()
18
存在問題:data靜態的 在建立物件之前 就已經存在
如果類沒有例項化物件 難道 就不能使用data了嗎?
解決上述問題 就要用到靜態成員函式靜態成員函式:
1注意:1.靜態成員函式的目的,操作靜態成員資料。2.靜態成員函式,不能訪問非靜態成員資料。class
data212
13//
靜態成員函式,屬於類,而不屬於物件
14static
int getdatastatic(void)15
18};
1920
//定義的時候,不需要加static
21int data::data = 100;//
類外定義+初始化
2223
void
tesk08()
24
3、普通成員函式 可以操作 靜態成員資料 非靜態成員資料。
3.const修飾靜態成員
如果乙個類的成員,既要實現共享,又要實現不可改變,那就要用static const修飾
1class
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關鍵字代表的是...