java同C 一樣,若類別的方法前加了static關鍵字,則該方法稱為靜態方法,反之為實例方法。
靜態方法為類別所有,可以透過物件來使用,也可以透過類別來使用。
但一般提倡透過類別名稱來使用,因為靜態方法只要定義了類,不必建立類別的實例就可使用。
靜態方法和實例方法的差異主要體現在兩個方面:
#1、在外部呼叫靜態方法時,可以使用"類別名稱.方法名稱"的方式,也可以使用"物件名稱.方法名稱"的方式。而實例方法只有後面這種方式。也就是說,呼叫靜態方法可以無需建立物件。
2、靜態方法在存取本類別的成員時,只允許存取靜態成員(即靜態成員變數和靜態方法),而不允許存取實例成員變數和實例方法;實例方法則無此限制。
靜態方法只能存取靜態成員,實例方法可以存取靜態和實例成員。
之所以不允許靜態方法存取實例成員變量,是因為實例成員變數是屬於某個物件的,而靜態方法在執行時,不一定存在物件。
同樣,因為實例方法可以存取實例成員變量,如果允許靜態方法呼叫實例方法,將間接地允許它使用實例成員變量,所以它也不能呼叫實例方法。
基於同樣的道理,靜態方法中也不能使用關鍵字this。
以上是什麼是靜態方法java的詳細內容。更多資訊請關注PHP中文網其他相關文章!