1、在非静态类中,既可以有实例成员,也可以有静态成员。
2、在调用实例成员的时候,需要使用对象名.实例成员;
在调用静态成员的时候,需要使用类名.静态成员;
总结:静态成员必须使用类名去调用,而实例成员使用对象名调用。
静态函数中只能访问静态成员,不允许访问实例成员。
实例函数中既可以使用静态成员,也可以使用实例成员。
静态类中只允许有静态成员,不允许出现实例成员。
使用:
① 如果你想要你的类当做一个“工具类”去使用,这个时候可以考虑将类写成静态的类。
② 静态类在整个项目中资源共享。
(静态存储区域)只有在程序全部结束后,静态类才会释放资源。
释放资源。GC Garbage Collection 垃圾回收
using System;using System.Collections.Generic;using System.Text;namespace _049_面对对象初级_4_静态与非静态{public class Class1{private static string _name;private int _age;public static string Name { get => _name; set => _name = value; }public int Age { get => _age; set => _age = value; }public void M1(){Console.WriteLine("我是非静态的方法");}public static void M2(){Console.WriteLine("我是静态的方法");}}}
using System;using System.Collections.Generic;using System.Text;namespace _049_面对对象初级_4_静态与非静态{public static class Class2{private static string _name;public static string Name { get => _name; set => _name = value; }// private int _num; 报错,静态类中不允许出现实例成员public static void M1(){Console.WriteLine("静态方法");}}}
using System;namespace _049_面对对象初级_4_静态与非静态{class Program{static void Main(string[] args){Class1 c1 = new Class1();c1.M1();//实例方法Class1.M2();//静态方法//Class2 c2 = new Class2();//无法创建静态类的实例}}}
