在上一篇文章中,我们已经编写了第一个Java程序——HelloWorld,并且对它进行了编译和运行。虽然这个例子很短小,但是它具有一个完整的Java程序所应该具有的结构。在这篇文章中,我将会对这个最简单的程序进行详细的解析,以便读者能够更清楚地认识到Java程序的结构。
现在来回顾一下这段代码:
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!"); // Display the string.
}
}
这个HelloWorld程序由三个基本结构组成:类定义、main方法和注释。本文将会给你提供一个对于这段代码的最基本的理解,但是更深层次的理解将会在你学完剩余的教程之后慢慢浮现。
一.注释
下面加粗的文本定义了HelloWorld程序中的注释:
注释会被编译器忽略,但是对于自己和其他程序员来说非常有用。Java支持三种注释:
- 单行注释:编译器将会忽略从//到行尾之间的任何文本,语法:
// This is a single-line comment.
- 多行注释:编译器忽略/*到*/之间的任何文本,语法:
/* This is a multi-line comment.
Everything in this area will be ignored.
*/
- 文档注释:编译器也会忽略这种注释,但是可以通过javadoc工具从源代码中将文档注释提取出来,形成API文档供使用者参考。有关文档注释的内容这里暂时不做介绍,感兴趣的读者可以自己去网上查阅相关的内容。语法:
/** This is documentation comment.
* Documentation can be generated by javadoc tool.
*/
二.HelloWorld类定义
下面加粗的文本块中是HelloWorld类的定义部分:
就像上面显示的那样,一个类定义的最基本形式是:
class name {
...
}
关键字class开始了一个名为name的类的定义,具体的定义类的代码被其后的一对花括号包裹起来。后续的文章将会详细地介绍有关类的概念,现在只需要知道每个程序都是以类的定义开头就够了。
三.main方法
下面加粗的文本块中定义了main方法:
每个Java程序都必须包含一个main方法,它的格式如下:
public static void main(String[] args)
main方法就像C和C++中的main函数一样,它是程序的入口。JVM会自动调用main方法,在main方法中可以调用其它自己编写的方法。
修饰符public和static的顺序可以颠倒,但是习惯上我们还是按照public static的顺序书写它们。
main方法接受一个字符串类型的数组作为唯一的参数,这个参数的名字也可以修改,但是大部分程序员还是会选择args。可以在运行时将参数传递给应用程序,例如:
java MyApp arg1 arg2
arg1和arg2将会被传递给args数组args,你可以在程序中通过args[0]和args[1]访问它们。HelloWorld程序没有传递命令行参数,但是你要知道可以通过这种方式在运行程序时将参数传递进去。
System.out.println("Hello World!");
最后一行使用核心类库(也称为Application Programming Interface或API)中的System类将“Hello World!”输出到控制台上。有关核心类库的其他部分将会在后续文章中进行介绍。