Java main()方法的方法签名为:
public static void main(String[] args){
...
}
此方法是否有理由是静态的?
该方法是静态的,因为否则会产生歧义:应调用哪个构造函数?特别是如果您的班级看起来像这样:
public class JavaClass{
protected JavaClass(int x){}
public void main(String[] args){
}
}
JVM应该调用new JavaClass(int)
吗?它应该做什么x
?
如果不是,JVM是否应该在JavaClass
不运行任何构造方法的情况下实例化?我认为不应该这样做,因为这会使整个类成为特殊情况-有时您有一个尚未初始化的实例,并且必须在每个可以调用的方法中进行检查。
对于JVM来说,在进入入口点之前必须实例化一个类的意义不胜枚举。这就是为什么main
是静态的。
我不知道为什么main
总是被标记public
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句