第三章③static關鍵字

static靜態(tài)的:可以用來修飾屬性、方法、代碼塊(或初始化塊)、內部類【不能用于構造器】

static修飾屬性(類變量):

通過對象也能調用類變量

1.由類創(chuàng)建的所有對象都共用一個屬性(類變量:變量前用static修飾的變量)(變量也可以叫屬性)

2.當其中一個對象對此屬性進行修改,會導致其他對象對此屬性的一個調用(就是所有的都發(fā)生變化)

3.類變量隨著類的加載而加載,而且獨一份

4.靜態(tài)的變量可以直接通過“類.類變量“進行調用

5.類變量的加載是要早于對象的,所以當有對象以后,可以“對象.類變量”使用。但是“類.實例變量”是不行的(類似父子關系,后出生的可以調用先出生的,先出生的不能調用后出生的)

6.類變量存在靜態(tài)域中,供次類的所有對象使用

實例變量(實例=對象,也可以叫【對象變量】):不用static修飾的屬性,每創(chuàng)建一個對象都會在堆內開辟一個空間,每個空間內都有不用static修飾的屬性,是獨立的,相當于副本,單個變量修改對其他變量不造成影響

實例變量是隨著對象的創(chuàng)建而創(chuàng)建。沒創(chuàng)建之前不分配內存空間

static修飾的方法(類方法):

1.隨著類的加載而加載,在內存中也是獨一份,一個對其改變會改變所有值

2.可以直接通過“類.類方法”的方式調用

3.方法內部可以調用靜態(tài)的屬性或方法(因為生命周期一樣).不能調用非靜態(tài)的屬性或方法

4.非靜態(tài)的方法是可以調用靜態(tài)的屬性或方法

注:靜態(tài)的結構(static修飾的屬性、方法、代碼塊、內部類)的生命周期要早于非靜態(tài)的的結構,同時回收也要晚于非靜態(tài)的結構

1.靜態(tài)的方法內是不可以有this和super關鍵字的,應為this代表當前對象,super也是引用當前對象父類的值,靜態(tài)的方法要早于對象

2.構造器和非靜態(tài)的方法一樣,可以調用靜態(tài)的屬性或方法

3.不依賴與具體對象的方法、屬性都可以用static

4.使用靜態(tài)變量可以實現(xiàn)“累加”的效果

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容