您应该在任何时候使用静态方法,如果,
该方法中的代码不依赖于实例创建,并且不使用任何实例变量。
所有实例方法都将共享一段特定的代码。
方法的定义不应更改或覆盖。
您正在编写不应更改的实用程序类。
public class InstanceCounter { private static int numInstances = 0; protected static int getCount() { return numInstances; } private static void addInstance() { numInstances++; } InstanceCounter() { InstanceCounter.addInstance(); } public static void main(String[] arguments) { System.out.println("Starting with "+InstanceCounter.getCount()+" instances"); for (int i = 0; i < 500; ++i) { new InstanceCounter(); } System.out.println("Created " + InstanceCounter.getCount() + " instances"); } }
输出结果
Started with 0 instances Created 500 instances