为什么在 " method1();" 中不需要参考变量才能从main调用静态方法?
public class MainClass {
public static void method1() {
System.out.println("Method1");
}
public static void main(String[ ] args) {
method1();
}
}
不为非静态方法实例化这样的Object变量:
MainClass var = new MainClass();
var.method1();
答案 0 :(得分:3)
静态成员(Method,Field)不属于任何对象实例。静态成员存在即使没有创建对象实例。所有对象实例的静态成员SHARED。这就是为什么当你访问静态成员时,你不必使用任何对象实例。
对于你的情况:
var1.method1() = var2.method1() = var3.method1() = MainClass.method1()
因为他们正在调用相同的静态成员实例。但是建议您以静态方式访问静态成员。
答案 1 :(得分:0)
static members
class member
并非特定于对象,因此我们不需要对象。最好的例子是public static void main(String [] args)
方法本身。