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... argsString args[]

公共(public)

主方法的访问修饰符需要设为public,这样JRE(Java运行时环境)才能访问和执行该方法。如果一个方法不是public的话,那么访问将被限制。在以下示例代码中,main方法缺少了public访问修饰符。

测试.java

public class Test {

	static void main(String[] args){

		System.out.println("Hello, World!");
	
	}
}

当您编译并运行程序时,出现以下错误是因为主方法不是public的,而JRE无法找到它。

  1. javac Test.java
  2. 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!");
	
	}
}

当你编译并运行程序时,会出现以下错误,因为主方法不是静态的。

  1. javac Test.java
  2. 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 时,主方法试图返回某个值。

测试.java

public class Test {

	public static void main(String[] args){
	
		return 0;
	}
}

当你编译程序时,会出现以下错误,因为 Java 不允许在返回类型为 void 时返回值。

  1. javac Test.java
输出

Test.java:5: error: incompatible types: unexpected return value return 0; ^ 1 error

主方法名称

Java 的主方法总是被命名为 main。当一个 Java 程序开始运行时,它总是寻找 main 方法。下面的示例代码展示了一个将主方法重命名为 myMain 的例子。

测试.java

public class Test {

	public static void myMain(String[] args){

		System.out.println("Hello, World!");
	}
}

当你编译并运行程序时,出现以下错误是因为 JRE 在类中找不到主方法。

  1. javac Test.java
  2. 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);
    	}
	
    }
}

当您编译并运行程序时,如果附带几个以空格分隔的命令行参数,这些参数将在终端中被打印出来。

  1. javac Test.java
  2. java Test 1 2 3 "Testing the main method"

输出

1
2
3
Testing the main method

结论

通过本文,您已经全面了解了 Java 主方法(main 方法)的各个组成部分及其功能。建议您继续学习更多 Java 教程,以深入掌握 Java 编程。

bannerAds