静态和非静态的区别
静态:
使用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 修饰,在调用静态类的时候直接实例化这个类,直接调用静态类中的静态方法(调用前就初始化了,静态类的构造方法只执行一次),实例化类在实例化的时候直接调用这个类的构造方法。