靜態簡介(static)

2021-10-07 10:24:17 字數 1265 閱讀 9459

**在c#程式中,沒有全域性變數的概念,這意味著所有的成員變數只有該類的例項才能操作這些資料,這起到了「資訊隱藏」的作用。

靜態變數的宣告方式如下:

[訪問修飾符] static 資料型別 變數名;

這裡的訪問修飾符跟類的其它成員一樣,可以是public,protected,private或internal等。

**靜態變數的使用

靜態變數是用類名來引用它。即:類名.靜態變數名;(靜態變數不屬於任何例項,而是共有的)

class student

public

void

run(

string name,

int age,

string sudu)

public

void

run(

string name,

int age,

string sudu,

string chengji)

}class

program

}

靜態方法與靜態變數一樣,不屬於任何特定的例項,屬於類全體成員共有,由類名來呼叫。但要注意以下幾點:

靜態方法只能訪問類的靜態成員,不能訪問類的非靜態成員;

非靜態方法可以訪問類的靜態成員,也可以訪問類的非靜態成員;

靜態方法不能使用例項來呼叫,只能使用類名來呼叫。

namespace _20206月13號

set}

public

zxc(

int x)

}class

program

-list item

}

1.靜態方法不需要類例項化就可以呼叫,反之非靜態方法需要例項化後才能呼叫;

2.靜態方法只能訪問靜態成員和方法,非靜態方法都可以訪問;

3.靜態方法不能標記為override,導致派生類不能重寫,但是可以訪問;

4.靜態成員是在第一次使用時進行初始化。非靜態的成員是在建立物件的時候,從記憶體分配上來說靜態是連續的,非靜態在記憶體的儲存上是離散的,因此靜態方法和非靜態方法,在呼叫速度上,靜態方法速度一定會快點,因為非靜態方法需要例項化,分配記憶體,但靜態方法不用,但是這種速度上差異可以忽略不計

1.乙個方法和他所在類的例項物件無關,不依賴new出來的例項,那麼它就應該是靜態的

2.不需要物件導向的理念的時候用靜態;比如動物-> run ,因為你可能會擴充套件出貓 run、狗 run,這時候就需要用非靜態的方法**

static 靜態方法

乙個不需要任何主叫物件的方法就是靜態方法。靜態方法需要關鍵字static來宣告於定義,他不需要主叫物件,因為它不屬於物件而是屬於類。靜態方法可以被子類繼承,也可以被重寫,但是不能實現多型性。多型性的實現重點在於動態繫結,每一次在呼叫相應方法的時候都是去動態查詢匹配,靜態方法是在類初次載入的時候就已經...

static靜態方法

static也可以修飾方法,使之成為靜態方法,我們通常用的入口函式,也就是main方法就是乙個靜態方法。注意事項 靜態方法可以直接呼叫靜態變數,不能呼叫非靜態成員變數。public class helloworld 2.可以通過建立類的物件來呼叫非靜態成員 public class hellowor...

靜態static 筆記

1.類物件共享 2.類載入時產生,銷毀時釋放,生命週期長 靜態成員的訪問 1.物件.成員 2.類名.成員 static放於屬性名前稱作靜態屬性 類屬性 static放於方法名前稱作靜態方法 類方法 推薦呼叫方式 類名.靜態成員 在成員方法中,可以直接訪問類中的靜態成員 靜態方法中不能直接訪問同乙個類...