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