c#物件導向- 靜態成員和非靜態成員的區別

紅旗下的小兵發表於2020-10-04

文章目錄

  • 靜態和非靜態區別

靜態和非靜態使用

提示:

(1)加上static就是靜態成員,不加就是非靜態成員。

(2)在一個類中,既可以有靜態成員,也可以有非靜態資源。

(3)在呼叫例項成員時,需要使用 物件名(例項).例項中的成員

(4)在呼叫靜態成員的時候,需要使用 類名.靜態成員的名字

class Person
{
    // 在別的檔案呼叫此方法時:
    // Person m = new Person;
    // m.M();
    public void M() // 例項方法
    {
        Console.WriteLine("我是非靜態方法");
    }
    // 在別的檔案呼叫此方法時:
    // Person.M1();
    public static void M1() // 靜態方法
    {
        Console.WriteLine("我是靜態方法");
    }
}

 


總結

提示:

(1)靜態成員必須使用類名去呼叫,而例項成員使用物件名呼叫;

(2)靜態函式中,只能訪問靜態成員,不允許訪問例項成員;

(3)例項函式中,既可以使用靜態成員,也可以使用例項成員。

(4)在靜態類中,只能出現靜態成員,不允許出現例項成員,否則將會報錯:

(5)靜態類,是不允許被例項化的,因為靜態類中,沒有例項成員,其次,在呼叫時靜態成員時,也必須用類名來呼叫。


使用靜態類和非靜態類的時機

(1)如果你想要你的類當做一個“工具類”去使用時,這個時候可以考慮將類寫成靜態類(如:Console這個類就是工具類);

所為工具類就是:經常要使用的方法,可以封裝到一個靜態類中。

(2)靜態類在整個專案中,它是資源共享的,所以,專案中,儘量少使用靜態類,因為他會佔用記憶體空間,且只有整個程式都結束時,才會釋放資源(GC垃圾回收器回收);

相關文章