乐趣区

关于java:Java面试手册基础篇能否声明main方法为private或protected或者不用访问修饰符

答案是否定的 ,main() 办法必须 public,不能定义 main()办法为 private 和 protected,也不能不用拜访修饰符。

这是为了能让 JVM 拜访 main()办法,如果不定义 main()办法为 public,尽管编译也会胜利,但会失去运行时谬误,因为找不到 main 办法。

(1)上面来进行验证,先把 public 改成 private,如下:

package com.magic.main;

public class MainDemo {private static void main(String[] args) {System.out.println("Hello World");
    }
    
}

尝试运行程序,失去的后果如下:

谬误: 在类 com.magic.main.MainDemo 中找不到 main 办法, 请将 main 办法定义为:
   public static void main(String[] args)
否则 JavaFX 应用程序类必须扩大 javafx.application.Application

(2)把 public 改成 protected,如下:

package com.magic.main;

public class MainDemo {protected static void main(String[] args) {System.out.println("Hello World");
    }
    
}

尝试运行程序,失去的后果如下:

谬误: 在类 com.magic.main.MainDemo 中找不到 main 办法, 请将 main 办法定义为:
   public static void main(String[] args)
否则 JavaFX 应用程序类必须扩大 javafx.application.Application

(3)去掉 public 修饰符

package com.magic.main;

public class MainDemo {static void main(String[] args) {System.out.println("Hello World");
    }
    
}

尝试运行程序,失去的后果如下:

谬误: 在类 com.magic.main.MainDemo 中找不到 main 办法, 请将 main 办法定义为:
   public static void main(String[] args)
否则 JavaFX 应用程序类必须扩大 javafx.application.Application

从下面能够得出结论,main() 办法必须应用 public 润饰,那么问题来了:能不能申明 main()办法为非静态方法?

更多无关 Java 面试相干的知识点能够关注【Java 面试手册】小程序,波及 Java 根底、多线程、JVM、Spring、Spring Boot、Spring Cloud、Mybatis、Redis、数据库、数据结构与算法等。

退出移动版