介面:
宣告在介面中的屬性自動成為public static final
宣告在介面中的方法自動成為public
宣告在介面中的類自動成為public static
如果你不需要內部類物件與其外圍類物件之間有聯絡,那你可以將內部類宣告為static。這通常稱為巢狀類(nested class)。想要理解static應用於內部類時的含義,你就必須記住,普通的內部類物件隱含地儲存了乙個引用,指向建立它的外圍類物件。然而,當內部類是static的時,就不是這樣了。巢狀類意味著:
1. 要建立巢狀類的物件,並不需要其外圍類的物件。
2. 不能從巢狀類的物件中訪問非靜態的外圍類物件。
public class z1
public void outer_f2()
// 靜態內部類可以用public,protected,private修飾
// 靜態內部類中可以定義靜態或者非靜態的成員
static class inner
void inner_f2()
}
class innerz
}
public void outer_f3()
public static void main(string args)
}生成乙個靜態內部類不需要外部類成員:這是靜態內部類和成員內部類的區別。靜態內部類的物件可以直接生成:outer.inner in = new outer.inner();而不需要通過生成外部類物件來生成。這樣實際上使靜態內部類成為了乙個頂級類(正常情況下,你不能在介面內部放置任何**,但巢狀類可以作為介面的一部分,因為它是static 的。只是將巢狀類置於介面的命名空間內,這並不違反介面的規則)
靜態類 和 非靜態類的區別
1 不能在靜態類中宣告例項成員 變數和方法 2 非靜態類中可以呼叫靜態類中的成員和方法 3 呼叫靜態類中的成員或方法時不需要例項化 4 非靜態類中可以宣告靜態成員或靜態方法 5 靜態方法的使用效率比非靜態方法的使用效率高 6 靜態方法與靜態成員變數一樣,屬於類本身,在類裝載的時候被裝載到記憶體,不自...
java之靜態內部類 非靜態類內部類的建立
package test public class testclass package test import test.testclass.inner 請注意這裡,一定一定要匯入內部類檔案,不然 1 會報錯 public class implements 結果 1package test publ...
靜態類和非靜態類的主要區別
靜態類和非靜態類的主要區別 主要區別在於靜態類不能例項化,靜態類編譯器能夠執行檢查確保不是偶然的新增例項成員,c 編譯器會自動把它標記為sealed,靜態類中不能建立非靜態的方法,即靜態方法中只能建立靜態方法,但在非靜態類中可以呼叫靜態方法。靜態類的主要特性 1 僅包含靜態成員。2 無法例項化。3 ...