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();//无法创建静态类的实例
}
}
}