1. 程式人生 > >Java的靜態變數和靜態方法

Java的靜態變數和靜態方法

總結一下,靜態變數和非靜態變數、靜態方法和非靜態方法的區別。

靜態變數和非靜態變數:

靜態變數是屬於類的,在類載入時直接初始化,並且是在類的任何物件創造之前就完成初始化,同一類的所有例項也都共享同一個靜態變數;而非靜態變數是屬於物件(例項)的,例項化時才被分配記憶體空間。它們的訪問方式:靜態變數不能訪問非靜態變數(不知道非靜態變數是屬於哪個例項的變數),而非靜態變數可以訪問靜態變數。

靜態方法和非靜態方法:

靜態方法同樣也是屬於類的,外部呼叫該靜態方法時,可以直接通過“類名.靜態方法名”,不需要再建立物件的行為了,不可以使用this關鍵字(this關鍵字與例項有關),而非靜態方法一定要建立物件才能進行訪問。同樣,靜態方法不能訪問非靜態方法(原因:非靜態的方法是屬於某個例項的,而靜態方法是屬於類的,它不知道非靜態方法是屬於哪個例項的方法),而非靜態方法可以訪問靜態方法。