c#物件導向- 靜態成員和非靜態成員的區別
文章目錄
- 靜態和非靜態區別
靜態和非靜態使用
提示:
(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垃圾回收器回收);
相關文章
- C++類中的常成員和靜態成員C++
- C#快速入門教程(3)——類的靜態成員和例項成員C#
- c++類的靜態成員C++
- C++:類的靜態成員C++
- c++中的靜態成員C++
- TypeScript 中 class 的例項成員與靜態成員TypeScript
- 類的靜態成員變數和普通成員變數該怎樣去區別定義變數
- C++ 靜態資料成員C++
- 類內的靜態成員函式函式
- 靜態方法和普通的成員方法||分配記憶體空間的區別記憶體
- 物件導向 成員和巢狀物件巢狀
- 偽靜態、靜態和動態的區別
- Java中靜態跟非靜態的區別總結Java
- C++學習筆記(三):類與物件--靜態成員變數與常成員函式C++筆記物件變數函式
- 區域性變數和全域性變數(靜態和非靜態)區別變數
- python之成員(物件導向)Python物件
- PHP 物件導向 (五)靜態方法PHP物件
- C++類的靜態成員變數初始化C++變數
- oop類的繼承與類靜態成員學習OOP繼承
- 對於靜態成員來說是類的建構函式,對於例項成員是類的原型物件。函式原型物件
- 靜態SDRAM和動態SDRAM的區別
- 【python】物件導向之類成員(屬性)Python物件
- net 靜態方法與非靜態方法
- 讓你看懂dart中靜態成員和繼承|8月更文挑戰Dart繼承
- 成員變數、全域性變數、例項變數、類變數、靜態變數和區域性變數的區別變數
- 深入理解python物件導向-類特殊成員Python物件
- 動態圖和靜態圖的程式碼區別
- 【知識分享】動態ip和靜態ip的區別
- 動態IP和靜態IP有什麼區別?
- 『無為則無心』Python物件導向 — 58、類方法和靜態方法Python物件
- PHP 物件導向 (七)訪問物件的方式及後期靜態繫結PHP物件
- #JAVA#物件導向(繼承中成員方法的關係)Java物件繼承
- 動態IP與靜態IP的主要區別
- 深入理解PHP物件導向之後期靜態繫結PHP物件
- 【普】靜態IP和動態IP有什麼區別?
- 【科普】靜態IP和動態IP有什麼區別?
- C++ 的靜態成員變數為什麼一定要在類外定義C++變數
- 伺服器動態ip和靜態ip的區別和特點伺服器