靜態he非靜態

2022-05-01 18:06:05 字數 1124 閱讀 6999

1

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

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

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

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

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

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

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

靜態類

靜態類和非靜態類重要的區別是在於靜態類不能被例項化,也就是說不能使用  

new關鍵字建立靜態類型別的變數。使用static關鍵字來宣告靜態類,這樣的意義在於:首先,它防止程式設計師寫**來例項化該靜態類;其次,它防止在類的內部宣告任何例項欄位或方法。

靜態類的使用

關鍵字:  

static

呼叫方式:

< 靜態類名.靜態方法 >注意:   

1.在靜態類中只能訪問靜態成員;  2

.在靜態類中只能有靜態成員;

靜態類的主要特性:

1:僅包含靜態成員。

2:無法例項化。

3:是密封的。

4:不能包含例項建構函式。

靜態成員

1:非靜態類可以包含靜態的方法、字段、屬性或事件;

2:無論對乙個類建立多少個例項,它的靜態成員都只有乙個副本(體現在在a例項改變了某個靜態變數的值將影響所有的例項);

3:靜態方法和屬性不能訪問其包含型別中的非靜態欄位和事件,並且不能訪問任何物件的例項變數;

4:靜態方法只能被過載,而不能被重寫,因為靜態方法不屬於類的例項成員;

5:雖然字段不能宣告為 static

const,但 const 欄位的行為在本質上是靜態的。這樣的字段屬於類,不屬於類的例項。因此,可以同對待靜態字段一樣使用 classname.membername 表示法來訪問 const

字段;6:c# 不支援靜態區域性變數(在方法內部定義靜態變數)。

靜態和非靜態

在自定義類和.net framework類庫中都可以發現,類中大部分是乙個類,很少是靜態類,那到底靜態類是否真的需要?其實程式上的設計都是必須的,所有的設計都是 於生活,於客戶分析。在程式設計初期,需要業務邏輯,明確編寫流程,以防後期各種修改。比如設計個學校的管理軟體,記錄每個學生的資訊,包括班級 ...

方法 靜態 非靜態

方法add1 add2和multiply add1 multiply都是靜態的方法,所以可以不通過建立物件而只用 類名.方法 名呼叫即可 方法add1和main方法同在乙個類program中,因此省略 方法名.非靜態方法add2只能通過例項化的方法來呼叫 否則會報13行的錯誤。using syste...

靜態和非靜態

靜態包括靜態類 靜態方法和靜態變數。靜態都是全域性擁有的,比如,靜態變數是這個類的所有例項共有 乙個例項的修改影響其他例項。靜態類中只能包含靜態變數和靜態方法。非靜態類既可以包含靜態變數和方法,又可以包含非靜態變數和方法。靜態類不能夠被例項化,直接使用類名呼叫變數或方法。非靜態變數同樣可以使用類名呼...