PHP 靜態方法和普通方法的區別

2022-07-23 12:09:15 字數 687 閱讀 2905

靜態方法

靜態的記憶體空間是固定的,相對來說更省資源。

創例項的創乙個例項就要開闢乙個新記憶體,耗費資源 靜態方法屬於類所有,類例項化前即可使用;

靜態方法只能訪問類中的靜態成員;

static內部只能出現static變數和其他static方法!而且static方法中還不能使用this等關鍵字,因為它是屬於整個類;

靜態方法和靜態變數建立後始終使用同一塊記憶體,而使用例項的方式會建立多個記憶體。

普通方法

可以訪問類中的任何成員, 因為靜態方法在類例項化前就可以使用,而類中的非靜態變數必須在例項化之後才能分配記憶體;

靜態方法效率上要比例項化高,靜態方法的缺點是不自動進行銷毀,而例項化的則可以做銷毀;

主要區別

靜態方法在建立物件前就可以使用了,非靜態方法必須通過new出來的物件呼叫。

靜態方法可以通過 類名::方法名直接呼叫。普通方法需要建立乙個例項,也就是new乙個物件,然後通過 物件名->方法名的方式來呼叫 靜態類只能包含靜態成員,否則會丟擲編譯錯誤;

非靜態類既可以包含非靜態成員也可以包含靜態成員 靜態類是不能例項化,之所以不能例項化,是因為靜態類會導致c#編譯器將該類同時標記為abstract和sealed,並且編譯器不會在型別中 生成乙個例項的建構函式,從而導致靜態類不能例項化;

非靜態類可以,並且靜態成員的訪問只能通過類來進行訪問,因為靜態成員是屬於類的。

靜態方法和非靜態方法的區別

靜態方法和非靜態方法的區別 1 靜態方法屬於類所有,類例項化前即可使用 2 非靜態方法可以訪問類中的任何成員,靜態方法只能訪問類中的靜態成員 3 因為靜態方法在類例項化前就可以使用,而類中的非靜態變數必須在例項化之後才能分配記憶體 4 static內部只能出現static變數和其他static方法 ...

靜態方法和非靜態方法的區別

靜態方法static 類方法 和 非靜態方法 例項方法 的區別 方法我們主要分為三種 1.構造方法 2.非靜態方法 普通方法 例項方法 3.靜態方法 類方法 對於1 補充一下 構造方法分為無參構造方法 和 有參構造方法。另外 這兩個方法,涉及到了方法過載 小夥伴可以自己去了解方法過載 方法重寫 方法...

靜態方法和非靜態方法的區別

靜態方法和非靜態方法的區別總結如下 1 靜態方法屬於類所有,類例項化前即可使用 2 非靜態方法可以訪問類中的任何成員,靜態方法只能訪問類中的靜態成員 3 因為靜態方法在類例項化前就可以使用,而類中的非靜態變數必須在例項化之後才能分配記憶體 4 static內部只能出現static變數和其他stati...