文章出處
文章列表
1. 靜態方法 VS 實例方法
2. 靜態類
(1)常見的靜態類:Math、Console、Convert
(2)靜態類中只能包括靜態成員、靜態構造函數、常量成員,不能有實例成員,不能有普通構造函數
(3)靜態構造函數不能有參數、不能有訪問修飾符(默認為private)
靜態構造函數的作用:用來初始化靜態成員
在加載類的時候使用,只會執行一次
3. 使用建議
當多個對象共享同一個數據的時候就可以在實例類中加入靜態成員。
少使用靜態類,靜態類、靜態成員所分配的內存在程序退出時才會釋放
在項目中需要頻繁用到的一些工具類,例如:Math、Console、Convert 等。或者模擬“全局變量”的時候使用。
4. 靜態類的繼承問題
a)靜態類不能被其他類繼承
b)如果在程序中我們讓靜態類繼承其他類,編譯器會報錯:“靜態類必須從對象派生”。
這句話我們應該這樣翻譯比較恰當:靜態類只能從Object類中派生
所以,靜態類只能繼承Object類。
c)靜態類不能實現任何接口,因為接口中的成員都是實例成員。
d)sealed:(*)密封類,不能被繼承。
1.sealed關鍵字,表示類不能被繼承。(密封類)
2.密封類表示不能被繼承。String類。
e)靜態類的本質abstract+sealed(*,知道即可)static
1.靜態類不能被實例化:abstract
2.靜態類不能被繼承:sealed
class Program { static void Main(string[] args) { MyHelper.name = "lk"; MyHelper.ShowMyMsg(); MyClass.Say(); } } public static class MyHelper : Object { //報錯,不能聲明實例成員 //public int num; //public void ShowMsg() { Console.WriteLine("msg"); } //只能聲明靜態成員 public static string name; public static void ShowMyMsg() { Console.WriteLine("MyMsg"); } private static void Show() { } //可以聲明常量 public const int MAX = 100; static MyHelper() { name = "123456789"; } }
文章列表
全站熱搜