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所示。

9.4.2 静态字段 - 图1