1.3 分析“Hello World!”应用程序
现在你已经看过了“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.
}
}
应用程序“Hello World!”由3个主要部分构成:源代码注释、HelloWorldApp类定义和main方法。下面的讲解将使你对这些代码有一个基本的了解,在阅读后续的章节时,将理解代码中更深层次的含义。
1.3.1 源代码注释
下面的粗体文本定义应用程序“Hello World!”的注释(comment)。
/**
* 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编程语言支持三种注释类型:
l /* text */ 编译器忽略从/*到*/之间的所有内容。
l /** documentation */ 这表示文档注释(documentation comment,简写为doc comment)。编译器忽略这种类型的注释,就像忽略/*和*/类型的注释一样。当javadoc工具准备自动生成的文档时,它会使用文档注释。关于javadoc的更多信息请参阅Javadoc工具文档。
l // text 编译器忽略从//到行尾的所有内容。
1.3.2 HelloWorldApp类定义
下面的粗体文本是应用程序“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.
}
}
如上所示,类定义的最基本形式是:
class name {
...
}
关键字class开始名为name的类的类定义,每个类的代码出现在前面用粗体标出的前后花括号之间。第2章概述类的概念,第4章详细地讨论类。现在,知道每个应用程序都以类定义开始就足够了。
1.3.3 main方法
下面的粗体文本是main方法的定义。
/**
* 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编程语言中,每个应用程序都必须包含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)
这个数组是一种机制,运行时系统通过它把信息传递给你的应用程序。数组中的每个字符串称为命令行参数(command-line argument)。命令行参数使用户可以影响应用程序的操作,而无需重新编译它。例如,一个排序程序可以允许用户使用如下命令行参数指定按照降序对数据进行排序:
-descending
应用程序“Hello World!”忽略它的命令行参数,但是你要认识到这样的参数的确存在。
最后,代码
System.out.println("Hello World!");
使用API的System类把消息“Hello World!”发送到标准输出。






