Java主函数详解:public static void main(String[] args) 深度解析
简介
当你开始用Java编程时,通常首先学习的方法是主方法(Main method),它是执行Java程序的入口点。主方法可以包含要执行或调用其他方法的代码,并且可以放置在程序中的任何类中。一些更复杂的程序通常有一个只包含主方法的类。包含主方法的类可以取任何名字,尽管通常我们可以直接称之为Main类。
在接下来的示例中,包含主方法的类被称为Test
。
测试.java
public class Test {
public static void main(String[] args){
System.out.println("Hello, World!");
}
}
在这篇文章中,您将了解主方法的每个组成部分的含义。
Java 主方法语法
主方法的语法总是:
public static void main(String[] args){
// 一些代码
}
你只需要改变字符串数组的参数名即可。例如,你可以将args
改为myStringArgs
。字符串数组参数可以写作String... args
或String args[]
。
公共(public)
主方法的访问修饰符需要设为public
,这样JRE(Java运行时环境)才能访问和执行该方法。如果一个方法不是public
的话,那么访问将被限制。在以下示例代码中,main
方法缺少了public
访问修饰符。
测试.java
public class Test {
static void main(String[] args){
System.out.println("Hello, World!");
}
}
当您编译并运行程序时,出现以下错误是因为主方法不是public
的,而JRE无法找到它。
- javac Test.java
- java Test
Error: 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
修饰符。
测试.java
这是文章《公共静态无返回值主函数(String[] 参数)- Java 主函数》的第2部分(共3部分)。
public class Test {
public void main(String[] args){
System.out.println("Hello, World!");
}
}
当你编译并运行程序时,会出现以下错误,因为主方法不是静态的。
- javac Test.java
- java Test
Error: Main method is not static in class Test, please define the `main` method as: public static void main(String[] args)
返回类型
每个 Java 方法都必须提供返回类型。Java 主方法的返回类型是 void
,因为它不返回任何内容。当主方法执行完毕时,Java 程序终止,因此不需要返回对象。在下面的示例代码中,当返回类型是 void
时,主方法试图返回某个值。
public class Test {
public static void main(String[] args){
return 0;
}
}
当你编译程序时,会出现以下错误,因为 Java 不允许在返回类型为 void
时返回值。
- javac Test.java
Test.java:5: error: incompatible types: unexpected return value return 0; ^ 1 error
主方法名称
Java 的主方法总是被命名为 main
。当一个 Java 程序开始运行时,它总是寻找 main
方法。下面的示例代码展示了一个将主方法重命名为 myMain
的例子。
public class Test {
public static void myMain(String[] args){
System.out.println("Hello, World!");
}
}
当你编译并运行程序时,出现以下错误是因为 JRE 在类中找不到主方法。
- javac Test.java
- java Test
Error: 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
字符串数组参数
Java 主方法参数详解:命令行参数的应用
Java 的主方法(main
方法)接受一个类型为 String
数组的参数。这个数组中的每个字符串都代表一个命令行参数。通过命令行参数,您可以灵活地影响程序的行为,或者在程序运行时向其传递必要的信息。以下示例代码展示了如何打印您在运行程序时输入的命令行参数:
Test.java
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"
输出
1
2
3
Testing the main method
结论
通过本文,您已经全面了解了 Java 主方法(main
方法)的各个组成部分及其功能。建议您继续学习更多 Java 教程,以深入掌握 Java 编程。