靜態和非靜態的區別
靜態:
使用static關鍵字
使用類名調用
在靜態方法中,可以訪問靜態成員
在靜態方法中,不可以直接訪問實例成員
調用前需要初始化(構造方法)
非靜態:
不需要使用static關鍵字
使用實例調用對象
在實例方法中可以直接訪問靜態成員
在實例方法中可以直接訪問實例成員
實例化對象時需要初始化(構造方法)
對於靜態類來說,在類中只能聲明靜態成員,相反實例類中可以聲明靜態類成員。
1 class Program{ 2 public static void Main(string[] args){ 3 Person.SayHello(); 4 Animal animal = new Animal(); 5 Console.ReadKey(); 6 } 7 } 8 static Person{ 9 static Person(){ 10 Console.WriteLine("我是靜態類的構造方法"); 11 } 12 public static void SayHello(){ 13 Console.WriteLine("我是靜態方法"); 14 } 15 } 16 class Animal{ 17 public Animal(){ 18 Console.WriteLine("我是實例化類的構造方法"); 19 } 20 }
在上面的demo中,定義了靜態Person類和非靜態Animal類,在靜態類中定義的構造方法使用static 修飾,在調用靜態類的時候直接實例化這個類,直接調用靜態類中的靜態方法(調用前就初始化了,靜態類的構造方法只執行一次),實例化類在實例化的時候直接調用這個類的構造方法。