声明 静态类和非静态类
1.非静态类中:既可以定义静态字段、静态属性、静态方法,也可以定义非静态(实例成员)字段、非静态(实例成员)属性、非静态(实例成员)方法、
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace 静态和非静态的区别 8 { 9 10 /** 11 * 非静态类 12 * 既可以定义静态字段、静态属性、静态方法。 13 * 也可以定义非静态(实例成员)字段、非静态(实例成员)属性、非静态(实例成员)静态方法。 14 **/ 15 16 //非静态类 17 public class Person1 18 { 19 //实例成员(非静态) 20 private int _id; 21 22 //实例属性(非静态) 23 public int ID 24 { 25 get { return _id; } 26 set { _id = value; } 27 } 28 29 //实例方法(非静态) 30 public void Showinfo() 31 { 32 } 33 34 35 /*--------------------------------------------------------------------*/ 36 37 38 //静态字段 39 private static string _name; 40 41 //静态属性 42 public static string Name 43 { 44 get 45 { 46 return _name; 47 } 48 set 49 { 50 _name = value; 51 } 52 } 53 //静态方法 54 public static void Sho() 55 { 56 57 } 58 } 59 }
2.静态类中:只可以定义静态字段、静态属性、静态方法。
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace 静态和非静态的区别 8 { 9 10 /** 11 * 静态类 12 * 只能定义静态字段、静态属性、静态方法。 13 **/ 14 15 //静态类 16 public static class Person2 17 { 18 /** 19 * 静态类中不能定义非静态成员 20 * **/ 21 ////实例成员(非静态) 22 //private int _id; 23 24 ////实例属性(非静态) 25 //public int ID 26 //{ 27 // get { return _id; } 28 // set { _id = value; } 29 //} 30 31 ////实例方法(非静态) 32 //public void Showinfo() 33 //{ 34 //} 35 36 /*--------------------------------------------------------------------*/ 37 38 //静态字段 39 private static string _name; 40 41 //静态属性 42 public static string Name 43 { 44 get 45 { 46 return _name; 47 } 48 set 49 { 50 _name = value; 51 } 52 } 53 //静态方法 54 public static void Sho() 55 { 56 } 57 } 58 }
调用 静态类和非静态类
1.非静态类
:使用实例化的对象来调用属性和方法。
1 // 非静态类 2 // 使用实例化的对象来调用属性和方法。 3 Person1 p = new Person1(); 4 p.ID = 20; 5 p.Showinfo();
2.静态类
:直接使用类名来调用属性和方法。
1 // 静态类 2 // 直接使用类名来调用属性和方法。 3 Person2.Name = "KaiDi"; 4 Person2.Sho();
为什么使用静态类?
1.如果想要你的类当做工具类去使用,这个时候可以使用静态类。因为不需要实例化对象,直接可以用类名调用。
2.静态类在整个项目中资源共享,除非重新编译,否则静态类不会改变。QQ只登陆一次,如果在QQ中跳转到其他模块,就不需要在进行登录。只有在程序结束的时候,静态了才会释放资源。
完成。