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");
}
}
在这个文件在执行的时候先执行那个呢?,如果把InvolveMain类里的方法写成注释后面的又先执行哪个呢?
求详细解释一下,谢谢谢谢。
4 个解决方案
#1
不明白什么意思,程序启动肯定是执行E20的main方法了。
#2
E20 的main方法是程序的主入口,进入之后才调用InvolveMain类的 main方法,不管你是否把InvolveMain类main方法的权限public,一个程序都只有一个主入口吧,所以jvm是肯定先找到E20的main..
#3
JVM会找和类名相同的类里面的main,所以是第二个
#4
这个文件编译后生成两个类,E20和InvolveMain,你如果执行E20,也就是“java E20”,执行E20的main,因为你在这个main中调用了InvolveMain的main方法,所以它也会执行;你要是执行InvolveMain,也就是“java InvolveMain”,就会报错,没有主方法。如果你把InvolveMain中的main改成注释那样,就可以执行了。
#1
不明白什么意思,程序启动肯定是执行E20的main方法了。
#2
E20 的main方法是程序的主入口,进入之后才调用InvolveMain类的 main方法,不管你是否把InvolveMain类main方法的权限public,一个程序都只有一个主入口吧,所以jvm是肯定先找到E20的main..
#3
JVM会找和类名相同的类里面的main,所以是第二个
#4
这个文件编译后生成两个类,E20和InvolveMain,你如果执行E20,也就是“java E20”,执行E20的main,因为你在这个main中调用了InvolveMain的main方法,所以它也会执行;你要是执行InvolveMain,也就是“java InvolveMain”,就会报错,没有主方法。如果你把InvolveMain中的main改成注释那样,就可以执行了。