如果将一个字段定义为static,则每个类的对象共有这个字段。而对于非静态的字段,每个对象都有自己的一个副本。感觉这个静态字段有很妙的用法。比如可以设置为一个群体人或物的标识,永不改变。或者可以有一套set方法,可以随着对象数目的增加而变化,或者根据对象某个方法被调用的次数而变化。或者一个类中有不止一个静态字段,并有各自的变化机制。那么就可以实现一些统计分析效果。
静态常量:
- public static final double PI = 3.1415926535897932846;
- public static final PrintStream out = …;
静态方法:
- 例如:Math.pow(x,a)
- 静态方法可以直接被类名调用
- 静态方法可以访问静态字段,但不能访问实例字段
以下两种情况可以使用静态方法:
- 方法不需要访问对象状态,所需参数都通过显式参数提供
- 方法只需访问类的静态字段
main方法也是一个静态方法