static 修飾的變量是 同一個類建立的所有對象 共享的。
若确定了 同一個類建立的所有對象的某個屬性 是 一緻的(比如,都是中國國籍,都是男生等),則該屬性可以用static修飾。
在建立的所有對象的某個屬性相同的前提下,用 static 修飾類的某個屬性,是為了建立多個對象時節省記憶體空間。
程式運作時有專門的靜态區,用來存儲 靜态屬性 和 靜态方法。
static關鍵字注意事項:
(1)在靜态方法中沒有 this 關鍵字
(2)靜态方法隻能通路靜态的成員變量和靜态的成員方法
靜态是随着類的加載而存在的,而普通的變量和方法(包括 this)是随着對象的建立而存在的。
package level2;
class AA{
public static void show() {
System.out.println("AA");
}
}
class BB extends AA{
public static void show() {
System.out.println("BB");
}
}
public class staticDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
AA a = new BB();
a.show();
BB b = new BB();
b.show();
AA.show();
BB.show();
}
}
測試結果:
AA
BB
AA
BB
關于這段代碼,個人不是很了解,歡迎大家解惑。