public static void main(String [] args)– Java main方法

时间:2020-02-23 14:37:24  来源:igfitidea点击:

public static void main(String [] args)是最重要的Java方法。
当您开始学习Java编程时,这是您遇到的第一种方法。
还记得您编写的第一个运行并打印" Hello World"的Java Hello World程序吗?

public static void main(String [] args)

Java主要方法是任何Java程序的入口点。
它的语法总是public static void main(String [] args)
您只能更改String数组参数的名称,例如,可以将args更改为myStringArgs。

String数组参数也可以写成String ... args或者String args []

让我们仔细看看java main方法,并尝试理解其每个部分。

public

这是main方法的访问修饰符。
它必须是" public",以便Java运行时可以执行此方法。
请记住,如果您将任何方法设为非公开,那么任何程序都不允许执行该方法,因此会应用一些访问限制。
因此,这意味着主要方法必须是公开的。
让我们看看如果将main方法定义为非公开方法会发生什么。

public class Test {

static void main(String[] args){

	System.out.println("Hello World");
	
}
}
$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方法必须是静态的,以便JVM可以将类加载到内存中并调用main方法的原因。
如果main方法不是静态的,则JVM将无法调用它,因为不存在该类的对象。
让我们看看当从java main方法中删除static时会发生什么。

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)
$

void

Java编程要求每个方法都必须提供返回类型。
Java main方法不返回任何内容,这就是其返回类型为" void"的原因。
这样做是为了使事情简单,因为一旦main方法完成执行,java程序就会终止。
因此,返回任何东西都是没有意义的,JVM无法对返回的对象做任何事情。
如果我们尝试从main方法返回某些内容,它将给出编译错误,作为意外的返回值。
例如,如果我们有如下所示的main方法。

public class Test {

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

当上面的程序被编译时,我们得到下面的错误。

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

main

这是java main方法的名称。
它是固定的,当我们启动Java程序时,它会寻找主要方法。
例如,如果我们有一个像下面这样的类。

public class Test {

public static void mymain(String[] args){

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

并且我们尝试运行该程序,它将引发一个错误,即未找到main方法。

$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
$

String[] args

Java main方法接受String数组类型的单个参数。
这也称为java命令行参数。
让我们看一下使用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
1
2
3
$java Test "Hello World" "hyman Kumar"
Hello World
hyman Kumar
$java Test
$