1. 静态字段
静态字段就是将字段定义为 static 的字段,类的所有实例共享一个静态字段。静态字段属于类,而不属于任何单个对象。而对于非静态的实例字段,每个对象都有自己的一个副本。
class Employee
{
private static int nextId = 1;
private int id;
...
}
现在,每个 Employee 对象都一个自己的 id 字段,但 Employee 类的所有实例将共享一个 nextId 字段。即使没有 Employee 对象,静态字段 nextId 也存在。它属于类,而不属于任何单个对象。
2. 静态常量
静态变量使用得比较少,但静态常量却很常用。例如,在 Math 类中定义了一个静态常量。
public final class Math {
...
public static final double PI = 3.14159265358979323846;
...
}
在程序中,可以用 Math.PI 来访问这个常量。
如果省略关键字 static,PI 就变成了 Math 类的一个实例字段。也就是说,需要通过 Math 类的一个对象来访问 PI,并且每一个 Math 对象都有它自己的一个 PI 副本。
另一个静态常量是 System.out。在 System 类中声明如下:
public final class System {
...
public static final PrintStream out &