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

2022-05-17 13:03:58 字數 736 閱讀 2508

靜態方法和非靜態方法的區別總結如下:

1、靜態方法屬於類所有,類例項化前即可使用;

2、非靜態方法可以訪問類中的任何成員,靜態方法只能訪問類中的靜態成員;

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

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

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

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

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

如:public class per

public string getname()

}上面這個類中的gettype方法,在沒有new物件前這就可以這樣用:

string type=per.gettype();//type="人類";

而getname方法則不能這樣使用,編譯都不會通過

getname必須這樣:

per p=new per();

string name=p.getname();//name="張三";

當然,gettype方法也可能通過物件呼叫:

string type=p.gettype();//type="人類";

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

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

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

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

靜態方法與非靜態方法區別

c 靜態方法與非靜態方法的區別不僅僅是概念上的,那麼他們有什麼具體的區別呢?讓我們通過本文向你做一下解析。c 的類中可以包含兩種方法 c 靜態方法與非靜態方法。那麼他們的定義有什麼不同呢?他們在使用上會有什麼不同呢?讓我們來看看最直觀的差別 使用了static 修飾符的方法為靜態方法,反之則是非靜態...