9.4.2 静态字段
和前述的实例字段不同的是,静态字段是类级别的,就是说访问它不需要先实例化类,直接使用“类名.静态字段名”即可访问。先来看一个静态字段的例子,如代码清单9-6所示。
代码清单9-6 静态字段声明
//汽车型号
public static string Type;
我们看到,和9.10节讲的静态方法类似,在实例字段声明的基础上添加static修饰符即可,static关键字要位于字段类型之前。下面看一个示例,如代码清单9-7所示。
代码清单9-7 静态字段的声明及访问
using System;
namespace ProgrammingCSharp4
{
class ClassExample
{
public static void Main()
{
Car car=new Car();
//为字段赋值
car.speed=10f;
//只能通过类名访问静态字段
Car.Type="BENZ";
//错误!通过类实例无法访问静态成员
//car.Type="CHERY";
//获取字段的值
Console.WriteLine(“汽车的速度为:{0}”,car.speed);
}
}
class Car
{
//当前行驶速度
public double speed;
//当前行驶方向
protected string direction;
//已行驶距离
private double distance;
//汽车型号
public static string Type;
public Car()
{
Type="BMW";
}
}
}
上述代码中,Type字段为静态字段,意味着Car类的所有实例的Type字段的值都相同,而speed等实例字段则各不相同。
静态字段的特点如下:
❑它不属于特定对象,而属于某一个类;
❑它不用创建类的实例即可访问(使用点运算符,且满足相应访问级别的情况下)。
接下来,我们对实例字段和静态字段做个对比,以加深对静态字段的理解。如表9-2所示。