当JVM调用main()方法时,Java程序开始执行。Java应用程序从这个方法开始。没有main方法,Java文件会成功编译,因为在编译时,编译器不会检查main方法,但在运行时JVM会检查main()方法是否可用。因此,我们会在运行时得到一个异常。
在这篇文章中,我们将了解为什么要遵循约定“public static void main(String[] args)。”
public class class_name { // This line must be written as it is public static void main(String[] args) { // code will be wriiten here } }
public class Tutorialspoint { public static void main(String []args) { System.out.println("Hello, you are on tutorials point"); } }
Hello, you are on tutorials point
在我们的java文件中,至少应该有一个公共类可用。按照惯例,主方法必须在一个类中定义,因为在java中所有的东西都在类的内部。这显示了java是一种面向对象的语言。
在上面的例子中,类'Tutorialspoint'包含main()方法。让我们讨论main()方法的各个部分−
public是一个访问修饰符,用于定义变量和方法的可见性和可访问性。使用public关键字定义的变量和方法可以被任何类和包访问。之前我们讨论过JVM调用main()方法,而该方法不位于当前类中。因此,main()方法被声明为public,以便我们可以在全局范围内或任何地方访问它。
如果我们不在main()方法中使用public关键字会怎样?
public class Tutorialspoint { static void main(String []args){ System.out.println("Hello, you are on tutorials point"); } }
Error: Main method not found in class Tutorialspoint, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application
我们遇到了这个错误,是因为JVM无法找到main()方法。
通常情况下,我们通过创建一个类的对象来调用方法,但是静态方法可以在不使用对象的情况下调用。JVM在创建任何对象之前会调用main()方法,这就是为什么我们需要将其声明为静态的原因。
大多数内置类Math的成员都是静态的。我们可以直接使用它们而不需要创建对象。
public class Main { public static void main( String[] args ) { double x = 6.55; double y = 4.32; System.out.println(" Ceil value of x: " + Math.ceil(x) ); System.out.println(" Floor value of y: " + Math.floor(y) ); } }
Ceil value of x: 7.0 Floor value of y: 4.0
上面的例子演示了Math类的静态方法ceil()和floor()的使用。我们可以看到,在我们的程序中直接使用了它们,而不需要创建Math类的任何对象。
让我们看看如果我们不将main()方法声明为静态会发生什么。
public class Tutorialspoint { public void main(String []args){ System.out.println("Hello, you are on tutorials point"); } }
Error: Main method is not static in class Tutorialspoint, please define the main method as: public static void main(String[] args)
JVM无法调用上述代码。
返回类型void表示该方法不返回任何内容。在java中,main()方法是程序的入口和退出点。当main()方法执行完毕时,java程序也结束执行。如果我们提供任何返回类型,如int或double,它将在编译时抛出错误。
让我们通过一个例子来理解 -
public class Tutorialspoint { public int main(String []args){ System.out.println("Hello, you are on tutorials point"); } }
Tutorialspoint.java:4: error: missing return statement } ^ 1 error
这是一个编译时错误。编译器要求返回语句,但对于JVM来说没有任何用处。
main是方法的名称,不要将其误认为关键字。它始终以“main”这样的形式书写。
String[] args 是一个接受 String 类型参数的参数。它允许我们通过终端传递参数,并将这些参数存储在字符串数组中。我们可以说 String[] args 是一个命令行参数。
这个例子将说明如何从终端传递参数给一个Java文件。
public class Arg { public static void main(String []args){ // for each loop to print argument taken from terminal for(String arg : args) { System.out.println(arg); } } }
要从终端编译代码,请键入以下命令:javac Arg.java
要从终端运行代码,请输入以下命令:java Arg “Your String”
PS D:\Java Programs> java Arg "Hello, You are on Tutorials Point" Hello, You are on Tutorials Point
在本文中,我们讨论了用于理解“public static void main(String[] args)”的Java程序。我们还讨论了如何使用参数‘String[] args’从终端接收输入。
以上是Java public static void main(String args) Java 公共静态 void 主函数(String 参数)的详细内容。更多信息请关注PHP中文网其他相关文章!