public static void main(String[] args) - Java main 方法
介绍
Javamain
方法通常是您开始用 Java 编程时学习的第一个方法,因为它是执行 Java 程序的入口点。该main
方法可以包含要执行或调用其他方法的代码,并且可以放置在程序的任何类中。更复杂的程序通常有一个只包含方法的类main
。包含该方法的类main
可以有任何名称,但通常您可以直接调用该类Main
。
在下面的例子中,包含该main
方法的类被称为Test
:
public class Test {
public static void main(String[] args){
System.out.println("Hello, World!");
}
}
在本文中您将了解该main
方法的每个组件的含义。
Java Main 方法语法
该方法的语法main
始终是:
public static void main(String[] args){
// some code
}
您只能更改数组参数的名称String
。例如,您可以将其更改args
为myStringArgs
。String
数组参数可以写为String... args
或String args[]
。
public
方法的访问修饰符main
需要是public
,以便 JRE 可以访问和执行此方法。如果方法不是公共的,则访问受到限制。在下面的示例代码中,该main
方法缺少public
访问修饰符:
public class Test {
static void main(String[] args){
System.out.println("Hello, World!");
}
}
编译并运行该程序时,由于该main
方法不是公共的,因此 JRE 找不到它,因此会出现以下错误:
javac Test.java
java Test
OutputError: Main method not found in class Test, please define the `main` method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
static
当 Java 程序启动时,不存在该类的对象。main
必须有方法static
,以便 JVM 可以将该类加载到内存中并调用该main
方法,而无需先创建该类的实例。在下面的示例代码中,该main
方法缺少static
修饰符:
public class Test {
public void main(String[] args){
System.out.println("Hello, World!");
}
}
编译并运行程序时,由于main
方法不存在,因此会出现以下错误static
:
javac Test.java
java Test
OutputError: Main method is not static in class Test, please define the `main` method as:
public static void main(String[] args)
void
每个 Java 方法都必须提供返回类型。Javamain
方法的返回类型为 ,void
因为它不返回任何内容。当该main
方法执行完毕后,Java 程序终止,因此不需要返回对象。在下面的示例代码中,main
当返回类型为 时,该方法会尝试返回某些内容void
:
public class Test {
public static void main(String[] args){
return 0;
}
}
编译程序时,会出现以下错误,因为当返回类型为时,Java 不期望返回值void
:
javac Test.java
OutputTest.java:5: error: incompatible types: unexpected return value
return 0;
^
1 error
main
Javamain
方法始终命名为main
。当 Java 程序启动时,它始终会查找该main
方法。以下示例代码显示了main
重命名为 的方法myMain
:
public class Test {
public static void myMain(String[] args){
System.out.println("Hello, World!");
}
}
编译并运行该程序时,由于 JRE 找不到main
该类中的方法,因此出现以下错误:
javac Test.java
java Test
OutputError: Main method not found in class Test, please define the `main` method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
String[] args
Javamain
方法接受单个数组类型的参数String
。数组中的每个字符串都是命令行参数。您可以使用命令行参数在运行时影响程序的操作或将信息传递给程序。以下示例代码显示如何打印运行程序时输入的命令行参数:
public class Test {
public static void main(String[] args){
for(String s : args){
System.out.println(s);
}
}
}
当您编译该程序,然后使用几个以空格分隔的命令行参数运行它时,这些参数会打印在终端中:
javac Test.java
java Test 1 2 3 "Testing the main method"
Output1
2
3
Testing the main method
结论
在本文中,您了解了 Java 方法的每个组件。通过更多Java 教程main
继续学习。