既然Java 面向对象的基础已经被讨论过了,接下来让我们看一些实际的Java 程序。让我们从编译及运行下面这个简短示例程序开始。你将看到,这个程序的功能比你想像的要多。
/*
This is a simple Java program.
Call this file "Example.java".
*/
class Example {
// Your program begins with a call to main(). public static void main(String args[]) { System.out.println("This is a simple Java program.");}}
注重:在下面的介绍中,将使用标准JDK(Java Developer’s Kit,Java 开发工具包),它可从Sun Microsystems 公司得到。假如你正在使用其他的Java 开发环境,则Java 程序编译、运行过程可能有所不同。在这种情况下,请你查阅编译器的用户手册来获得具体指导。
1 键入程序
对大多数计算机语言,包含程序源代码的文件名是任意的,但对于Java 就不行。关于Java ,你需要知道的第一件事就是源文件的名字非常重要。对这个例子,源程序文件名应该是Example.java 。下面我们将解释其中的原因。
在Java 中,一个源程序文件被称为一个编译单元(compilation unit )。它是一个包含一个或多个类定义的文本文件。Java 编译器要求源程序文件使用.java 文件扩展名。请注重,文件扩展名长度是4个字符。所以,你的操作系统一定要有支持长文件名的能力。这意味着DOS 和Windows 3.1 是不支持Java 的(至少在目前是这样)。当然,它可在Windows 95/98 和Windows NT/2000 下正常工作。
从上述示例程序中可以看出,程序中定义的类名也是Example 。这不是巧合。在Java 中,所有的代码都必须驻留在类中。按照约定,类名必须与源程序的文件名相同。你也应该确保文件名的大小写字母与类名一样,这是因为Java 是区分大小写的。虽然文件名与类名必须一致的约定似乎有点专制,但是这个约定有助于你轻松地维护及组织程序。
2 编译程序
要编译示例程序Example ,须运行编译器程序javac ,并在命令行上指定源程序文件名,格式如下所示:
C:\>javac Example.java
编译器javac 产生了一个名为Example.class 的文件,该文件包含程序的字节码。前面已讨论过,Java 字节码中包含的是Java 解释程序将要执行的指令码。因此,javac 的输出并不是可以直接运行的代码。
要真正运行该程序,你必须使用名叫java 的Java 解释器。具体做法是把类名Example 作为一个命令行参数输入,格式如下所示:
C:\>java Example
运行这个程序,将输出如下内容:
This is a simple Java program.
当Java 源代码被编译后,每个单独的类都被放入自己的输出文件中,并以类的名字加“.class ”扩展名为其文件名。这就是为什么Java 源程序文件必须与其中包含的类同名的原因——源程序文件将与“.class ”文件相同。运行Java 解释器实际上是指定你想要解释器运行的类的名字,它会自动搜索包含该名字且带有.class 扩展名的文件。假如找到,它将运行包含在该指定类中的代码。
2.2.3 具体讨论第1个示例程序
尽管Example.java 很短,但它包括了所有Java 程序具有的几个要害特性。让我们仔细分析该程序的每个部分。
程序开始于以下几行:
/* This is a simple Java program.
Call this file "Example.java".
*/
这是一段注释(comment )。像大多数其他的编程语言一样,Java 也答应你在源程序文件中加注释。注释中的内容将被编译器忽略。事实上,注释是为了给任何阅读源代码程序的人说明或解释程序的操作。在本例中,注释对程序进行说明,并提醒你该源程序的名字叫做Example.java 。当然,在真正的应用中,注释通常用来解释程序的某些部分如何工作或某部分的非凡功能。