您好,登錄后才能下訂單哦!
這篇文章主要介紹了php靜態方法和普通方法的區別有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
區別:靜態方法可以通過“類名::方法名”直接調用;而普通方法需要創建一個實例,也就是new一個對象,然后通過“對象名->方法名”的方式來調用。靜態方法只能訪問類中的靜態成員;普通方法可以訪問類中的任何成員。
靜態的內存空間是固定的,相對來說更省資源。
創實例的創一個實例就要開辟一個新內存,耗費資源 靜態方法屬于類所有,類實例化前即可使用;
靜態方法只能訪問類中的靜態成員;
static內部只能出現static變量和其他static方法!而且static方法中還不能使用this等關鍵字,因為它是屬于整個類;
靜態方法和靜態變量創建后始終使用同一塊內存,而使用實例的方式會創建多個內存。
可以訪問類中的任何成員, 因為靜態方法在類實例化前就可以使用,而類中的非靜態變量必須在實例化之后才能分配內存;
靜態方法效率上要比實例化高,靜態方法的缺點是不自動進行銷毀,而實例化的則可以做銷毀;
靜態方法在創建對象前就可以使用了,非靜態方法必須通過new出來的對象調用。
靜態方法可以通過 類名::方法名直接調用。普通方法需要創建一個實例,也就是new一個對象,然后通過 對象名->方法名的方式來調用;靜態類只能包含靜態成員,否則會拋出編譯錯誤;
非靜態類既可以包含非靜態成員也可以包含靜態成員 靜態類是不能實例化,之所以不能實例化,是因為靜態類會導致C#編譯器將該類同時標記為abstract和sealed,并且編譯器不會在類型中 生成一個實例的構造函數,從而導致靜態類不能實例化;
非靜態類可以,并且靜態成員的訪問只能通過類來進行訪問,因為靜態成員是屬于類的。
》
感謝你能夠認真閱讀完這篇文章,希望小編分享的“php靜態方法和普通方法的區別有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。