可能的重复:
方法什么时候应该是静态的?
通常在为类编写静态方法时,可以使用ClassName.methodName
. 在这个简单的例子中使用“静态”的目的是什么?为什么应该/不应该在这里使用它?私有静态也破坏了使用静态的目的吗?
public class SimpleTest {
public static void main(String[] args) {
System.out.println("Printing...");
// Invoke the test1 method - no ClassName.methodName needed but works fine?
test1(5);
}
public static void test1(int n1) {
System.out.println("Number: " + n1.toString());
}
//versus
public void test2(int n1) {
System.out.println("Number: " + n1.toString());
}
//versus
private static void test3(int n1) {
System.out.println("Number: " + n1.toString());
}
}
我看了一些教程。例如http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html
我对它的理解是,您可以只使用类名而不是创建类的实例来使用该方法 - 在某些情况下节省内存,每次都使用特定方法构造一个对象是没有意义的。