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


靜態方法

  1. 靜態的內存空間是固定的,相對來說更省資源。
  2. 創實例的創一個實例就要開辟一個新內存,耗費資源 靜態方法屬於類所有,類實例化前即可使用;
  3. 靜態方法只能訪問類中的靜態成員;
  4. static內部只能出現static變量和其他static方法!而且static方法中還不能使用this等關鍵字,因為它是屬於整個類;
  5. 靜態方法和靜態變量創建后始終使用同一塊內存,而使用實例的方式會創建多個內存。

普通方法

  1. 可以訪問類中的任何成員, 因為靜態方法在類實例化前就可以使用,而類中的非靜態變量必須在實例化之后才能分配內存;
  2. 靜態方法效率上要比實例化高,靜態方法的缺點是不自動進行銷毀,而實例化的則可以做銷毀;

主要區別

  1. 靜態方法在創建對象前就可以使用了,非靜態方法必須通過new出來的對象調用。
  2. 靜態方法可以通過 類名::方法名直接調用。普通方法需要創建一個實例,也就是new一個對象,然后通過 對象名->方法名的方式來調用 靜態類只能包含靜態成員,否則會拋出編譯錯誤;
  3. 非靜態類既可以包含非靜態成員也可以包含靜態成員 靜態類是不能實例化,之所以不能實例化,是因為靜態類會導致C#編譯器將該類同時標記為abstract和sealed,並且編譯器不會在類型中 生成一個實例的構造函數,從而導致靜態類不能實例化;
  4. 非靜態類可以,並且靜態成員的訪問只能通過類來進行訪問,因為靜態成員是屬於類的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM