原文链接:https://docs.oracle.com/javase/tutorial/getStarted/application/index.html
仔细研究"Hello World!"应用程序
现在您已经看到了"Hello World!"应用程序(甚至可能已经编译并运行了它),您可能想知道它是如何工作的。下面是它的代码:
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); // Display the string.
}
}
"Hello World!"应用程序由三个主要组件组成:源代码注释、HelloWorldApp类定义和main方法。以下解释将为您提供对代码的基本理解,但深层次的含义只有在您完成本教程的其余部分阅读后才会显现出来。
源代码注释
以下粗体文本定义了"Hello World!"应用程序的注释:
/**
* The HelloWorldApp class implements an application that
* simply prints "Hello World!" to standard output.
*/
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); // Display the string.
}
}
注释对编译器来说是被忽略的,但对其他程序员来说是有用的。Java编程语言支持三种类型的注释:
/* text */
编译器会忽略从/*到*/之间的所有内容。
/** documentation */
这表示文档注释(doc comment)。编译器会忽略这种类型的注释,就像它忽略使用/*和*/的注释一样。在准备自动生成文档时,javadoc工具会使用文档注释。有关javadoc的更多信息,请参阅Javadoc™工具文档。
// text
编译器会忽略从//到行末的所有内容。
HelloWorldApp类定义
以下粗体文本开始了"Hello World!"应用程序的类定义块:
/**
* The HelloWorldApp class implements an application that
* simply displays "Hello World!" to the standard output.
*/
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); // Display the string.
}
}
如上所示,类定义的最基本形式是:
class name {
. . .
}
关键字class用于开始名为name的类的定义,每个类的代码都位于上面用粗体标记的大括号之间。第2章概述了类的一般情况,第4章详细讨论了类。现在只需要知道每个应用程序都以类定义开始即可。
main方法
以下粗体文本开始了main方法的定义:
/**
* The HelloWorldApp class implements an application that
* simply displays "Hello World!" to the standard output.
*/
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); //Display the string.
}
}
在Java编程语言中,每个应用程序都必须包含一个main方法,其签名为:
public
static void main(String[] args)
修饰符public和static可以按任意顺序书写(public static或static public),但约定是使用public static,如上所示。您可以为参数选择任何名称,但大多数程序员选择"args"或"argv"。
main方法类似于C和C++中的main函数,它是您的应用程序的入口点,并随后将调用程序所需的所有其他方法。
main方法接受一个参数:类型为String的元素数组。
public static void main(String[] args)
这个数组是运行时系统将信息传递给您的应用程序的机制。例如:
java MyApp arg1 arg2
数组中的每个字符串称为命令行参数。命令行参数允许用户在不重新编译应用程序的情况下影响应用程序的操作。例如,一个排序程序可以通过以下命令行参数让用户指定按降序排序数据:
-descending
"Hello World!"应用程序忽略了它的命令行参数,但您应该意识到这些参数确实存在。
最后,这行代码:
System.out.println("Hello World!");
使用核心库中的System类将"Hello World!"消息打印到标准输出。本教程的其余部分将讨论这个库(也称为"应用程序编程接口"或"API")。