分类:
2008-10-28 18:10:44
知道了 (TM) 的 class 和 method 的语法之后,我们就能设计一个 程序了。Java 应用程序由一个或多个定义了数据和行为的 class 组成。 Java 编译器将源程序转换成为一种净化处理过的格式。该格式只不过是操作-操作数对(operation-operand(s))的一个线性排列:
...
这种数据流叫做字节码流(bytecode stream), 或简称 Java 字节码(Java bytecodes)。字节码流中的操作实现所谓的虚拟机(基于软件的指令处理器)的指令集,此虚拟机通常称作 Java 虚拟机(JVM)。实现 JVM 的程序用作简单地处理 Java 的 class 文件,有时为特定的环境设计。例如,支持 Java 的 Web 浏览器如 Netscape Navigator 和 Internet Explorer,都包含一个 JVM 的实现。实现 JVM 的独立程序被称作 Java 解释器(interpreters)。
Java 编译器将字节码流存到一个以 .class 为文件名后缀的文件即通常所说的 class 文件中。任何 Java 解释器都能读或者说处理这个流--"解释"每一个操作和相应的数据(即操作数)。解释过程分为:(1) 进一步将净化的字节码翻译成宿主计算机的机器指令,(2) 管理程序的执行。下面的流程图说明了编译和执行的过程:
Java 的 class 文件是可跨平台移植的,而 Java 编译器和解释器则是不可移植的,他们通常是用 C 语言编写并被编译成各计算机平台固有的机器语言。因为 Java 编译器产生的字节码文件都遵循一种预先定义好的格式而且与机器无关, 同时任何 Java 解释器能读懂字节码并进一步将之翻译成机器指令,因此一个 Java 程序无需重新编译就可以随处运行。
通常将一个 class 的定义存为一个相应文件名的 Java 源文件。如上例中的 Dog , 就被存为文件 Dog.java。Java 编译器对源文件进行处理生成字节码的 class 文件,上例中为 Dog.class,但在 Dog示例中,Dog.class 并不是一个 Java 程序。
一个 Java 程序由一个或者多个 class 文件构成, 其中必须有一个定义了程序运行的起始点--Dog.class 则没有。从另一个角度说,起始点正是 Dog 这样的 class 和实现程序的 class 的 不同之处。Java 中, 程序的起始点用 main()方法定义。同样,一个程序必须有一个设计良好的终止点。Java 中,停止程序运行的一个办法是调用或者说执行系统(system)方法 exit()。
因此,在我们能做任何令人兴奋的事情前,我们应该有一个具有明确起始点和终止点的程序。用一个随意的用户定义的数据类型即可达到目的。该类型提供了 main() 和 exit() 行为,以及用于确认实际执行的简单输出操作:
public class SimpleProgram {
public static void main(String[] args) {
System.out.println("This is a simple program.");
System.exit(0);
}
}
main() 的方法标记是不可以改变的。至此,你可仿照上例简单地定义一个程序的入口--用 public 和 static 限制符以及 void返回类型。System ( java.lang.System) 是每一种 Java 环境中都提供的一个标准的 class ,它定义了许多实用的操作。上例中用到了两个操作: (1) 将数据显示到标准输出设备(通常为一个 IDE 窗口或者是操作系统的命令窗口)上,(2) 让程序退出(exit)。
注意调用 exit() 时用 0 做参数是为了告诉调用程序和 Java 解释器运行没有出错,也就是说,程序是正常退出的。
到此为止,我们已经有两个 class 了:一个是真实世界的, 用户定义的数据类型 Dog,另一个 class 则相当神奇:它将特定应用行为与开始和终止程序的机制联系起来了。
现在是熟悉你的 Java 开发环境的好时候了。如果你有一个集成开发环境(IDE),它可能是也可能不是 file-oriented 的。在大多数的开发环境中,Java 源代码存放在文件里。一个比较有名的例外是 IBM 的 VisualAge for Java,它将 class 的定义存在工作区(workspace area)中。
当使用 file-oriented 的 IDE 时,需要注意文件名与 class 名相匹配;尤其要注意 class 的名字和文件的名字都是大小写敏感的。当然,你还需遵循因考虑系统环境变量设置等而为 Java 环境所设定的那些规则。运行环境和 class path 设置一屏讲述了系统设置的基本知识。
第一个练习非常简单但很重要,因为它用来测试你的 Java 配置。练习包括以下几步:
编写此屏中所示的 SimpleProgram
按 IDE 的要求保存
IDE 工作区环境下的某处
或者,一个单独的名为 SimpleProgram.java 的文件。
Build 程序
执行
观察输出