Java main方法

时间:2020-01-09 10:36:48  来源:igfitidea点击:

Java程序是按一定顺序执行的Java指令序列。由于Java指令以一定顺序执行,因此Java程序具有开始和结束位置。

要执行Java程序,我们需要向Java虚拟机发出信号,从那里开始执行程序。在Java中,所有指令(代码)都必须位于Java类内部。类是将数据和指令归为一组的一种方式。因此,一个类可以同时包含变量和方法。变量可以包含数据,并且方法将对数据(指令)的一组操作组合在一起。如果我们还不完全了解这一点,请不要担心。稍后的文本中将对此进行更详细的说明。

一个简单的Java类声明

声明一个没有任何变量,方法或者任何其他指令的简单类,在Java代码中看起来像这样:

public class MyClass {

}

该Java代码必须位于与该类同名的文件中,并以文件后缀.java结尾。更具体地说,文件名必须为MyClass.java。一旦该文件位于与其类名匹配并以.java结尾的文件中,我们就可以使用Java SDK或者Java IDE内部的Java编译器对其进行编译(这很容易)。

建议我们在Java包中找到类。 Java软件包只是文件系统中的一个目录,可以包含一个或者多个Java文件。包可以嵌套,就像目录通常可以嵌套一样。例如,我们可以创建一个名为" myjavacode"的程序包,该程序包与硬盘驱动器上名为" myjavacode"的目录相对应。

如果在Java程序包中找到Java类,则必须在Java文件的顶部指定程序包名称。这是添加了包声明的早期类的外观:

package myjavacode;

public class MyClass {

}

注意:文件MyClass.java必须现在位于目录myjavacode中,并且包含程序包声明package package myjavacode;。仅将Java文件放在正确的目录中是不够的。仅在Java文件中包含程序包声明是不够的。这两个要求都必须满足。

main()方法

Java程序需要在某处开始执行。 Java程序通过执行某个类的" main"方法开始。我们可以选择要执行的类的名称,但不能选择方法的名称。该方法必须始终称为" main"。这是main方法声明位于早期的Java类声明中时的外观:

package myjavacode;

public class MyClass {

    public static void main(String[] args) {

    }
}

三个关键字" public"," static"和" void"具有特殊含义。现在不用担心它们。只需记住,main()方法声明需要这三个关键字。

在三个关键字之后,我们具有方法名称。概括地说,方法是一组指令,可以将它们视为单个操作来执行。通过"调用"(执行)方法,我们可以执行该方法中的所有指令。

方法名称之后是第一个左括号,然后是参数列表。参数是变量(数据/值),我们可以将其传递给方法,方法中的指令可能会使用该参数来自定义其行为。 main方法必须始终采用String对象数组。你可以这样声明一个String对象的数组:

String[] stringArray

不必担心字符串是什么或者数组是什么。这将在以后的文章中进行解释。此外,我们给参数指定什么名称都没有关系。在前面的main()方法示例中,我将字符串数组参数称为args,在第二个示例中将其称为stringArray。我们可以自由选择名称。

在方法的参数列表之后,首先是左花括号({),然后是一些空白区域,然后是右花括号(})。在大括号内,我们可以找到执行main方法时要执行的Java指令。这也称为方法主体。在上面的示例中,没有要执行的指令。该方法为空。

让我们在" main"方法主体中插入一条指令。这是一个看起来如何的示例:

package myjavacode;

public class MyClass {

  public static void main(String[] args) {
    System.out.println("Hello World, Java app");
  }
}

现在main方法包含以下单个Java指令:

System.out.println("Hello World, Java Program");

该指令会将文本" Hello World,Java Program"输出到控制台。如果从命令行运行Java程序,那么我们将在命令行控制台(计算机的文本界面)中看到输出。如果从IDE内部运行Java程序,则IDE通常会将所有输出捕获到控制台,并使其在IDE内部的某个位置对我们可见。

运行main()方法

当我们启动Java程序时,通常是通过命令行(控制台)进行的。我们调用JRE随附的java命令,并告诉它要执行的Java类以及要传递给main()方法的参数。然后,在JVM内部执行Java应用程序(或者由某些人宣称的JVM执行)。

这是一个示例命令行:

java -cp classes myjavacode.MyClass

该命令的第一部分是java命令。此命令启动JVM。在某些情况下,我们可能必须指定Java命令在计算机上的完整路径(通常在Java安装目录的bin子目录中)。

第二个和第三个参数(-cp类)告诉JVM编译后的Java类位于哪个目录中(cp表示类路径)。在这种情况下,编译后的Java类位于名为" classes"的目录中。

第四个参数是JVM要执行的Java类的名称。请注意,类名还如何包含该类所在的包的名称("完全限定的类名")。

将参数传递给main()方法

我们可以从命令行将参数传递给main()方法。此命令行显示如何:

java -cp classes myjavacode.MyClass Hello World

当JVM执行myjavacode.MyClass的main()方法时,作为参数传递给main()方法的String数组将包含两个字符串:" Hello"和" World"。

main()方法可以从命令行访问参数,如下所示:

package myjavacode;

public class MyClass {

    public static void main(String[] args) {
        System.out.println( args[0] );
        System.out.println( args[1] );
    }
}

注意args数组中对元素0和元素1的引用(args [0]和args [1])。 args [0]将包含String(文本)Hello,而args [1]将包含String World。

文本Java项目概述,编译和执行中对编译和运行Java源代码进行了更详细的说明。

变量和数组将在以后的文章中更详细地说明。如果我们现在还不完全了解它们,请不要担心。

Java main类

如果Java程序中只有一个Java类包含main()方法,则包含main()方法的类通常称为main类。

我们可以在项目中使用main()方法来拥有任意多个类。但是,只能指示Java虚拟机一次运行其中一个。我们仍然可以从Java虚拟机执行的main()方法内部调用其他main方法,但我们还可以启动多个虚拟机,每个虚拟机执行一个main()方法。