靜態和非靜態方法

2022-02-16 20:43:12 字數 715 閱讀 1602

一步一步了解基礎知識:

直觀上:靜態方式有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關鍵字的方法,在類定義時沒有占用記憶體,只有在類被例項化成物件時,物件呼叫該方法才被分配記憶體。其次,靜態方法中只能呼叫靜態成員或者方法,不能呼叫非靜態方法或者非靜態成...