我们可以在Java中将main()方法声明为private或protected或没有访问修饰符吗?
Java提供了各种访问说明,即私有,公共和受保护等。
该私人修饰限制成员从类的外部访问。一个类和接口不能是公共的。
在公共访问修饰符可与类,方法,构造器,接口等相关公众可以从任何其它类访问。
受保护的访问修饰符可以通过使用变量,方法和构造,这是在一个父类定义的保护相关联只能由其它包或包中受保护成员的类内的任何类子类进行访问。
默认访问修饰符没有关键字声明的变量或方法,而同一包中的任何其他类都无法使用任何访问控制修饰符。
因此,如果将方法声明为public,则可以从类外部的任何位置访问它。我们知道,如果主要方法是公共JVM,则JVM直接访问/调用主要方法。JVM可以从任何地方调用它。
声明主要方法为私有或受保护
您可以在程序中定义main方法,而无需使用private,protected或默认(无)修饰符,从而可以编译程序而没有编译错误。
但是,在执行时,JVM并不将其视为程序的入口点。它搜索主要方法,该方法是公共的,静态的,返回类型为void,并将String数组作为参数。
public static int main(String[] args){ }
如果找不到这种方法,则会生成运行时错误。
示例
在下面的Java程序中,类Sample包含main方法,该方法是公共的。
public class Sample{ private static void main(String[] args){ System.out.println("This is a sample program"); } }
输出结果
在执行时,该程序会产生以下错误。
Error: Main method not found in class Sample, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application