static修饰符声明属于类型本身,而不属于特定的对象。因此使用时不用实例化,可直接调用。
静态变量执行完,值不会消失,会一直存在。
静态全局变量:会在全局数据区分配内存,如果不显示初始化,那么就会隐式初始化为0。
静态局部变量:会在全局数据区分配内存,如果不显示初始化,那么就会隐式初始化为0。
其作用域为局部作用域,当定义它的语句块结束时,其作用域随之结束。
静态成员函数:静态成员函数与类相联系,静态成员函数不能引用非静态变量及函数。
using System;
class Employee
{
public static int a = 0;//可以不进行初始化
public int b = 0;
public static void n()
{
a++;
Employee em = new Employee(); //引用非静态变量需先行实例化对象
em.b++;
}
public void m()
{
a++;
b++;
}
}
class MainClass
{
//public static int c;
static void Main()
{
Console.WriteLine(Employee.a);//可以直接引用静态变量
Employee.n();
Employee employee = new Employee();
Console.WriteLine(employee.b);
employee.m();
Console.ReadLine();
}
}