我们可以在 Java 中将 main() 方法声明为 private 或 protected 还是不使用访问修饰符?

java 8object oriented programmingprogramming

Java 提供了各种访问说明符,即 private、public 和 protected 等...

  • Private 修饰符限制了类外部成员的访问。类和接口不能是 public。

  • Public 访问修饰符可以与类、方法、构造函数、接口等相关联。public 可以从任何其他类访问。​​

  • protected 访问修饰符可以与变量、方法和构造函数相关联,这些变量、方法和构造函数在超类中声明为 protected,只能由其他包中的子类或受保护成员包中的任何类访问;类。

  • 默认访问修饰符没有关键字,未使用任何访问控制修饰符声明的变量或方法可供同一包中的任何其他类使用。

因此,如果您将方法声明为 public,则可以从类外的任何地方访问它。众所周知,如果 main 方法是 public,JVM 会直接访问/调用 main 方法,JVM 可以从任何地方调用它。

将 main 方法声明为 private 或 protected

您可以在程序中定义 main 方法,而无需使用 private、protected 或 default (none) 修饰符,程序会进行编译而不会出现编译错误。

但是,在执行时,JVM 不会将其视为程序的入口点。它搜索 main 方法,该方法是公共的、静态的、返回类型为 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

相关文章