📅  最后修改于: 2020-03-19 13:19:50             🧑  作者: Mango
以下几点解释了main()方法中的“static”:
// 创建static方法
static void func()
{}
// 创建static变量
static int var;
// 创建static方法
class GfG
{
static void func()
{}
}
// Calling a static function
GfG.func();
class GfG
{
// 静态maini方法
public static void main(String[] args)
{}
}
public class GfG{
protected GfG(int g){}
public void main(String[] args){
}
}
JVM现在进入歧义状态,决定是否应调用新的GfG(int)。如果是,那么g应该通过什么?如果不是,那么JVM应该在不执行任何构造函数方法的情况下实例化GfG吗?
像这样的边缘情况和歧义太多了,以至于JVM必须在调用入口点之前实例化一个类才有意义。这就是为什么main是静态的。
因此,Java中的main()方法被声明为静态方法,以便JVM在创建对象之前可以使用其类名直接访问它。