1.4 开发第一个Java应用程序
安装好JDK及配置好环境变量以后,就可以着手开发Java应用程序了。开发Java程序要经过以下三个步骤。
(1)创建一个源文件。
(2)将源文件编译为一个.class文件。
(3)运行程序。
1.4.1 创建第一个Java应用程序源文件
Java应用程序的开发过程,如1.2.1节中的图1.1所示。Java源文件包含有程序代码,以Java语言编写。Java源文件是纯文本文件,扩展名为“.java”。可以使用任何文本编辑器来创建和编辑源文件,本书使用Windows系统自带的记事本作为Java源文件的编辑器。
下面按上面所述步骤开发第一个简单的Java应用程序HelloWorldApp.java。这个程序很简单,仅仅在控制台输出“Hello World!”。首先需要创建一个Java的源程序文件。
【例1.1】创建HelloWorldApp.java应用程序,该程序输出“Hello World!”字符串信息。按以下步骤创建。
① 启动编辑器。通过选择【程序】|【附件】|【记事本】命令,启动记事本编辑器。在一个新的文本文档中,输入以下代码:
// HelloWorldApp应用程序简单地输出一个问候:"Hello World! " public class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); //输出"Hello World!"字符串 } }
注意
必须准确地输入代码、命令和文件名,因为编译器javac和启动程序java都是大小写敏感的,所以必须保持大小写一致。HelloWorldApp ≠ helloworldapp。另外,文件中的所有标点符号,必须在英文状态下输入。
② 将代码保存到以HelloWorldApp.java名字命名的文件中。在记事本中,选择【文件】|【另存为】命令,打开【另存为】对话框。
使用【保存在】组合框,指定要保存文件的目录。在本示例中是“C:\examples\chapter01”目录。
在【文件名】文本框中输入“HelloWorldApp.java”。
从【保存类型】下拉列表框中,选择“文本文档(*.txt)”。
在【编码】下拉列表框中,保持编码为ANSI。
结束以上操作时,对话框看上去应该如图1-17所示。
图1-17 保存Java源文件
③ 打开“C:\examples\chapter01”目录,可以看到一个名为HelloWorldApp.java的文件。
1.4.2 将HelloWorldApp.java源文件编译为.class文件
源文件是使用人类易于理解的语言和语法形式编写的,是程序人员阅读的程序代码,但计算机并不能识别,计算机只能识别“0、1”组成的二进制代码。要想让计算机识别并运行Java程序,还需要将源文件编译为二进制的字节码文件。
编译Java源文件,使用JDK自带的编译器工具javac.exe,它会读取源文件并将其文本翻译为Java虚拟机能理解的指令,保存在以后缀.class结尾的文件中。包含在这个文件中的指令就是众所周知的字节码(bytecodes),它是与平台无关的二进制文件,执行时由解释器java.exe解释成本地机器码,边解释边执行。按以下步骤编译HelloWorldApp.java源文件。
① 打开命令行窗口。通过选择【开始】|【所有程序】|【附件】|【命令提示符】命令,打开【命令提示符】窗口。也可以选择【开始】|【运行】命令,打开【运行】窗口。在【运行】窗口中输入“cmd”命令并回车,打开【命令提示符】窗口,如图1-18所示。
图1-18 启动命令提示符窗口
提示符显示了系统当前目录。系统当前目录通常是Windows XP的home目录。
② 改变当前目录。要编译源文件,改变当前目录到HelloWorldApp.java文件所在的目录。在本示例中,源文件是保存在“C:\examples\chapter01”目录中。输入以下命令,如图1-19所示。
图1-19 进入源文件所在目录
cd C:\examples\chapter01
③ 查看源文件。输入“dir”命令,列出当前目录下的文件清单,如图1-20所示。可以看到当前目录下的源文件HelloWorldApp.java源文件。
④ 开始编译。在命令提示符下,输入以下的命令并回车,如图1-21所示。
图1-21 编译HelloWorldApp.java源文件
javac HelloWorldApp.java
⑤ 查看.class类文件。在命令提示符下,输入“dir”命令并回车,可以看到多了一个新的文件HelloWorldApp.class,如图1-22所示。
1.4.3 运行HelloWorldApp应用程序
将源文件编译为.class文件后,就可以使用Java解释器(java.exe)来解释执行Java应用程序的字节码文件(.class文件)了。Java解释器使用Java虚拟机来运行Java应用程序。在与源文件同一目录下,在命令提示符状态下,输入以下命令并回车,应该看到如图1-23所示内容。
图1-23 运行HelloWorldApp应用程序
java HelloWorldApp
从图1.23可以看到,运行HelloWorldApp应用程序,输出了一个问候信息“Hello World!”。祝贺你!你的第一个Java应用程序工作正常!
1.4.4 Java应用程序的基本结构
在成功地编写、编译并运行了第一个Java应用程序“HelloWorldApp.java”程序以后,下面分析一下该应用程序的基本结构。HelloWorldApp应用程序由三个主要部分组成。
源代码注释;
HelloWorldApp类定义;
main()方法。
1.源代码注释
Java语言鼓励程序员在自己的程序中添加注释,用来解释程序的某些部分如何工作或某部分的特殊功能,以帮助自己或团队成员理解代码的含义。下面的程序中定义了“Hello World!”应用程序的注释。
// HelloWorldApp应用程序简单地输入一个问候:"Hello World! " public class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); //输出"Hello World! "字符串 } }
注释的内容会被编译器所忽略,也就是说,注释并不会影响程序的执行,但是对于程序员理解代码来说是很有用的。Java语言支持三种类型的注释:单行注释、多行注释和文档注释。
单行注释。单行注释以“//”开始,并以换行符结束。通常对程序进行简单的说明用单行注释。编译器会忽略从“//”到本行结束间的任何内容。
多行注释。多行注释以“/*”开始以“*/”结尾。编译器会忽略从“/*”到“*/”这两个注释符之间的任何内容。注释的内容可以包括多行。
文档注释。文档注释以“/**”开始,并以“*/”结束。编译器忽略这一类的注释,就像它忽略使用“/*”和“*/”的注释一样。对于在方法体外的文档注释,可以使用Java的文件生成工具javadoc自动地将其生成文档。
2.HelloWorldApp类定义
下面是定义HelloWorldApp应用程序类的代码:
public class HelloWorldApp { … //这里为类中的属性和方法定义 }
说明
HelloWorldApp为类的名称。Java程序是由类(class)组成的,一个Java源文件中可以包含多个类。在本示例中,只有一个类HelloWorldApp。
类的基本结构是:
class类名{ … }
class是Java语言的关键字,是用来定义类的,这是必需的。public也是Java语言的关键字,它将这个类定义为一个公共类(后续章节有详细和系统的讲解)。在一个Java程序中,可以有多个类,但是只能有一个类是公共类。在类名后面,紧跟一对花括号,花括号之间的内容称为类体。
3.main()方法
在Java语言中,每一个应用程序必须包含一个main()方法,如以下代码所示。
// HelloWorldApp应用程序简单地输入一个问候:"Hello World! " public class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); //输出"Hello World! "字符串 } }
说明:
main()方法是Java程序的入口,所有的Java应用程序都通过调用main()方法开始执行。
public static void main(String[] args)为固定用法,称为main方法的“方法签名”。其中public、static、void都是Java的关键字,其含义在后续章节中有详细讲解。
修饰符public和static可以以任何顺序书写(public static或static public),但是习惯上是使用public static,如上面的例子中所示。
main()方法后面,必须跟一对花括号。花括号及其之间的内容,称为“方法体”。
一个Java应用程序必须有一个类含有main()方法,这个类称为应用程序的“主类”。
最后,使用核心类库中的System类来打印输出“Hello World!”消息到标准输出,如下面这行代码所示。
System.out.println("Hello World!);