將static放在一個成員變量聲明前,可將其變爲靜態變量,放在方法聲明前就變爲靜態方法
那麼這個靜態有什麼用呢?
靜態變量屬於整個類,一個靜態變量永遠只有一個存儲空間,換言之,一個類的多個對象使用的靜態變量是同一個,修改一個對象的靜態變量會導致其他對象的靜態變量發生同樣的變化。
而且,靜態變量和靜態方法可以直接訪問。
class Value{
static int a=0;
int b=0;
void add(){
a++;
d++;
}
}
class Demo{
public static void print(String s){
System.out.println("s");
}
public static void main(String[] args){
Value v1,v2;
v1 = new Value();
v2 = new Value();
show(“”+v1.a+","+v2.a+","+v1.b+","+v2.b);
v1.add();
show(“”+v1.a+","+v2.a+","+v1.b+","+v2.b);
}
}
輸出:
0,0,0,0
1,1,1,0
很明顯雖然只對v1進行了增加,v2.a同樣增加了,因爲a被定義成了靜態變量,對v1的a進行增加後,v2調用的是這個被修改後的a。
換言之,靜態變量a是一個共有賬戶,v1這個用戶往裏面充了錢後,v2去看賬戶裏有多少錢時看的也是這個賬戶,那麼顯示出來的自然也是修改後的金額。