猿问

为什么Java Main方法是静态的?

为什么Java Main方法是静态的?

Java的方法签名主()方法是:

public static void main(String[] args){
    ...}

这种方法是静态的吗?


小唯快跑啊
浏览 605回答 3
3回答

达令说

方法是静态的,因为否则会出现歧义:应该调用哪个构造函数?尤其是如果您的课程如下所示:public class JavaClass{   protected JavaClass(int x){}   public void main(String[] args){   }}JVM是否应该调用new JavaClass(int)?它应该代表什么?x?如果没有,JVM应该实例化吗?JavaClass而不运行任何构造函数方法?我认为不应该这样做,因为这将是特殊的-比如整个类-有时您有一个尚未初始化的实例,您必须在每个可以调用的方法中检查它。有太多的边缘情况和歧义使得JVM在调用入口点之前必须实例化类是有意义的。怪不得main是静态的。我不知道为什么main总是被标记public尽管如此。

catspeake

这个main()方法C++, C#和Java是静态的因为它们可以由运行时引擎调用。无的主体中的代码必须实例化任何对象。main()剩下的就可以了
随时随地看视频慕课网APP

相关分类

Java
我要回答