一步一步了解基礎知識:
直觀上:靜態方式有static修飾符,非靜態方法沒有。
一、靜態成員和非靜態成員區別
靜態成員屬於類所有,而非靜態成員屬於類的例項所有。
非靜態成員:每當建立乙個類的例項,就會給非靜態成員在記憶體中開闢一塊儲存空間。
靜態成員:無論建立多少類的例項,類的靜態成員只在記憶體中佔同一區域。
二、靜態方法和非靜態方法的區別
靜態方法屬於類所有,而非靜態方法屬於類的例項所有。
靜態方法只能訪問類中的靜態成員,而非靜態方法能訪問類中的任何成員。
靜態方法在例項化前就可以使用。而類中的非靜態變數必須在例項化之後才能分配記憶體。
c#靜態方法呼叫時無法判斷非靜態變數使用的記憶體位址。所以無法使用。而靜態變數的位址對類來說是固定的,故可以使用。
靜態方法效率上要比例項化高,靜態方法的缺點是不自動進行銷毀,而例項化的則可以做銷毀。
靜態方法和靜態變數建立後始終使用同一塊記憶體,而使用例項的方式會建立多個記憶體.
tatic方法是類中的乙個成員方法,屬於整個類,即不用建立任何物件也可以直接呼叫!
static內部只能出現static變數和其他static方法!而且static方法中還不能使用this....等關鍵字..因為它是屬於整個類!
靜態方法是一種特殊的成員方法 它不屬於類的某乙個具體的例項,而是屬於類本身。所以對靜態方法不需要首先建立乙個類的例項,而是採用類名.靜態方法的格式 。
靜態和非靜態方法 呼叫靜態和非靜態方法 原創
在學習php物件導向的時候,遇到了一些問題 class test1 在test1類中,定義了乙個test方法。一般呢,想要呼叫test方法的話,是通過例項化乙個物件來呼叫test方法的。比如 aaa.php php 正常的方式訪問普通方法test class test1 new new test1 ...
靜態和非靜態方法 呼叫靜態和非靜態方法 原創
在學習php物件導向的時候,遇到了一些問題 class test1 在test1類中,定義了乙個test方法。一般呢,想要呼叫test方法的話,是通過例項化乙個物件來呼叫test方法的。比如 aaa.php php 正常的方式訪問普通方法test class test1 new new test1 ...
靜態方法和非靜態方法
首先,兩者本質上的區別是 靜態方法是在類中使用staitc修飾的方法,在類定義的時候已經被裝載和分配。而非靜態方法是不加static關鍵字的方法,在類定義時沒有占用記憶體,只有在類被例項化成物件時,物件呼叫該方法才被分配記憶體。其次,靜態方法中只能呼叫靜態成員或者方法,不能呼叫非靜態方法或者非靜態成...