多個對象公用的一個不變的值,使用static來修飾
static 是一個修飾符隻能修飾成員,成員變量,成員函數
,
靜态修飾内容被對象所共享
當成員被靜态修飾後,就多了一個條用方式,除了可以被對象調用,還可以被類名調用。方式對象.bianliang
eg:既然這麼友善,就都用靜态吧?
答:不行的,是因為,這是公共的是對象共享的!除非人都有統一同名,具體情況具體分析。
傳值部落格,飲水機靜态,如果飲水機靜态,太占用空間。可以使用一個飲水機,杯子可以共享靜态
分析,事物的特有的,特有資料随對象存儲在對記憶體中,
新的記憶體:方法區/共享區/資料區
static特點:
1.随着類的加載而加載 、//person進記憶體。靜态已經存在,随着類的消失而消失。說明static的生命周期最長。
2.被所有對象所共享
3.優先于對象存在
4.可以直接被類名所調用
eg:String name //成員變量也叫執行個體變量
static String name /靜态的成員變量,類變量
問:什麼是對象特有的,什麼是對象共有的?
問:執行個體變量和類變量的差別?
回答:類1.變量随着類的加載而存在于方法區中,執行個體變量随着對象的建立,存在于堆記憶體中(對戲對象裡面)
2.生命周期:
類變量生命周期最長,随着類的消失而消失。
執行個體變量生命周期随着對象的消失而消失。
靜态的使用注意事項:
- 靜态方法 static
- 靜态變量 static
(1)靜态方法隻能通路靜态成員(方法和變量)2
(2)非靜态方法可以通路靜态,也可以通路非靜态
(3),靜态方法中不可以定義this。super關鍵字
靜态優先于對象存在,是以靜态方法中不可以出現this
靜态方法有利有弊:
掌握共享方面:
利,對對象的共享資料單獨存儲,節省空間的存儲,沒必要都存儲一份在對象中