㈠ java中靜態方法與非靜態方法的區別
在外部調用靜態方法時,可以使用"類名.方法名"的方式,也可以使用"對象名.方法名"的方式。而實例方法只有後面這種方式。也就是說,調用靜態方法可以無需創建對象。
靜態方法在訪問本類的成員時,只允許訪問靜態成員(即靜態成員變數和靜態方法),而不允許訪問實例成員變數和實例方法;實例方法則無此限制。
㈡ java 靜態類和非靜態類的區別
靜態類和非靜態類的主要區別:
主要區別在於靜態類不能實例化,靜態類編譯器能夠執行檢查確保不是偶然的添加實例成員,C#編譯器會自動把它標記為sealed,靜態類中不能創建非靜態的方法,即靜態方法中只能創建靜態方法,但在非靜態類中可以調用靜態方法。
靜態類的主要特性:
1:僅包含靜態成員。
2:無法實例化。
3:是密封的。
4:不能包含實例構造函數。
5:非靜態類可以包含靜態的方法、欄位、屬性或事件;
6:靜態方法和屬性不能訪問其包含類型中的非靜態欄位和事件
7:靜態方法只能被重載,而不能被重寫,因為靜態方法不屬於類的實例成員;
8:C# 不支持靜態局部變數(在方法內部定義靜態變數)。
非靜態類在使用時必須要實例化,每次使用時都要進行實例化,一般情況下使用比較頻繁的類,可以使用靜態類,比如LogClass,ConfigClass等等。
㈢ 在java中,什麼叫靜態,什麼叫非靜態
由static
關鍵修飾的內容
為靜態
;
反之
,為非靜態
靜態變數
屬於
類
,為所有對象共有
分靜態變數
屬於
對象
,
每個對象都可以有且屬性值可以各異
靜態變數優於非靜態變數載入,故
靜態代碼塊中不能引用非靜態成員,會報錯