關於這部份我參考了「Ken Yang筆記」,寫得很清楚,例子也很好懂。

class test{
static int iValue = 0;
public test() {
}
}
public class main {
public static void main(String[] argv)  {
test test1 = new test();
test test2 = new test();
System.out.println(test1.iValue);
test2.iValue  = 10;
System.out.println(test2.iValue);
System.out.println(test1.iValue);
}
}

特性1:只有一個值

class 的test裡面宣告一個ivalue的static = 0,

所以test1.ivalue印出來是多少呢?當然是1嘛。

接下來,test2.ivalue賦值為10,

所以,test2.ivalue印出來會是多少呢?答案是10,沒有問題。

再來,回頭把test1.ivalue印出來又會是多少呢?很簡單嘛,是0,

真的嗎?實際結果是10啊,為什麼呢?這就是static的持性,

Ivalue只佔一組記憶體,不管你是test1到test10,itest的值卻只有一個。

特性2:可直接取用

class test{
static int iValue = 0;
public test() {
}
}
public class main {
public static void main(String[] argv)  {
System.out.println(test.iValue);
}
}

即使不new object出來,可直接取用test.ivalue。

換言之,如果class test裡面的static刪掉,則不能直接取用。