1、靜態方法中是沒有this關鍵字的,因此無法在靜態方法中引用非靜態變數。非靜態方法中可以直接訪問成員變數是因為隱含呼叫了this
非靜態方法中的
system.out.println(num);
等價於system.out.println(this.num);
//因為靜態變數是隨著類的載入而載入的,this是隨著物件的建立而存在的,靜態比物件先存在。
2、靜態方法只能訪問靜態成員變數和靜態成員方法,非靜態方法既可以訪問靜態成員方法也可以訪問非靜態成員方法。
static關鍵字的特點以及注意事項
當乙個類中的所有方法都是靜態的,它就會私有它的構造方法。例如 math類 使用場景 如果某個成員變數是被所有物件共享的,那麼它就應該定義為靜態的 其實它本身也可以通過物件名呼叫 推薦使用類名呼叫 原因 1.靜態是隨著類的載入而載入,this是隨著物件的建立而存在。2.靜態比物件先存在 靜態方法 成員...
static關鍵字修飾屬性,方法的注意事項
static 修飾屬性 類變數 1.由類創造的所有物件,都共用這個屬性。2.當其中乙個物件對此屬性進行修改,會導致其他物件對此屬性的乙個呼叫。例項變數 非靜態的屬性,各個物件各自擁有一套副本 3.類變數隨著類的載入而載入,而且獨乙份。4.靜態的變數可以直接通過 類.變數 的形式來呼叫。5,類變數的載...
register關鍵字的注意事項!!
1.用register修飾的變數只能是區域性變數,不能是全域性變數。因為全域性變數的生命週期是從執行程式開始,一直到程式結束才會終止,而register變數可能會存放在cpu的暫存器中,如果在程式的整個生命週期內都占用著暫存器的話,這是個相當不好的舉措,cpu的暫存器資源有限,因此不可能讓乙個變數一...