2 h meichuan h_meichuan 于 2016.03.20 13:02 提问

[java]关于main函数的执行先后顺序

在这个文件在执行的时候先执行那个呢?,如果把InvolveMain类里的方法写成注释后面的又先执行哪个呢?
求详细解释一下,谢谢谢谢。

 package exercise5;

//整个文件的类名是E20
//创建一个使用可变参数列表而不是普通的main()语法的main()。
//打印所产生的args数组的所有元素,并用各种不同数量的命令行参数来测试它

class InvolveMain{
     static void  main(String...args){    //如果写成public static void?
        for(String a:args)
            System.out.print(a+" ");
        System.out.println();
    }
}

public class E20 {
    public static void main(String[] args){
        InvolveMain.main("lal","lalaa","dfsdf");
    }
}

2个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.20 13:18

首先,测试这段代码,定义的类文件名称必须是E20.java,因为E20是public类,必须有独立的类文件。
其次,一个类文件中定义两个类,且有各自的main方法,注意main方法的声明必须是

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

那么,你运行的时候,需要选中运行哪个类的main方法的,在Eclipse下右键run as application,弹出选择框,让你指定运行哪个类的main函数的。
结论就是,Java语言本身是严谨的,一个类一次执行只能有一个入口main函数的。

wojiushiwo945you
wojiushiwo945you 是的,像你的代码如果有两个入口main方法,只能选择一个来运行的。
一年多之前 回复
wojiushiwo945you
wojiushiwo945you 你这样声明的话,就不是虚拟机能识别的入口方法了啊,就被视为普通的方法了。
一年多之前 回复
h_meichuan
h_meichuan 另外,main方法的声明好像也可以是main(String...args)的吧?
一年多之前 回复
h_meichuan
h_meichuan 请问可以这样理解么:就是一个.java文件里只能有一个public类,而且每个.java文件运行的时候只能执行一个main函数是么?
一年多之前 回复
hgq0916
hgq0916   2016.03.21 23:01

java程序执行过程是这样的,先找到public类,然后从public类中找到main方法开始执行,虽然你在另一个类中也定义了main方法,但这个方法不会被jvm自动调用的。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!