main()
方法可以指定为私有还是受保护?
它会编译吗?
它会运行吗?
答案 0 :(得分:17)
方法main()可以指定为private还是protected?
是
会编译吗?
是
它会运行吗?
是的,但不能将其作为申请的切入点。如果从其他地方调用它,它将运行。
试一试:
$cat PrivateMain.java
package test;
public class PrivateMain {
protected static void main( String [] args ) {
System.out.println( "Hello, I'm proctected and I'm running");
}
}
class PublicMain {
public static void main( String [] args ) {
PrivateMain.main( args );
}
}
$javac -d . PrivateMain.java
$java test.PrivateMain
Main method not public.
$java test.PublicMain
Hello, I'm proctected and I'm running
在此代码中,受保护的方法不能用作应用程序的入口点,但可以从类PublicMain
不能调用私有方法,而是从类本身调用。所以你需要这样的东西:
public static void callMain() {
main( new String[]{} );
}
如果它是私有的,请致电main
。
答案 1 :(得分:5)
是的,它会编译。但它不会成为该计划的切入点。
Java查找公共主方法签名。如果任何修饰符不同,那么它将把它假设为其他方法。
运行并测试4个自己。 :)
答案 2 :(得分:4)
您可以根据需要使用任何主要方法创建尽可能多的类。除非与签名相符,否则它们不能成为切入点。
答案 3 :(得分:0)
它将编译,它不会运行(使用Eclipse测试)。
答案 4 :(得分:0)
是的,它将编译,但是 未运行 。它会给您以下错误
错误:在类A中找不到主要方法,请将该主要方法定义为: 公共静态void main(String [] args) 或JavaFX应用程序类必须扩展javafx.application.Application
以下是简单的测试代码
class A {
private static void main(String arg[])
{
System.out.print(2+3);
}
}