服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

第1个简单java程序

    既然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 。当然,在真正的应用中,注释通常用来解释程序的某些部分如何工作或某部分的特殊功能。

java 支持3种类型的注释。在示例程序顶部的注释称为多行注释(multiline comment )。这类注释开始于“/*”,结束于“*/”。这两个注释符间的任何内容都将被编译器忽略。正如“多行注释”名字所示,一个多行注释可以包含若干行文字。

程序的下一行代码如下所示:

class example {

该行使用关键字class声明了一个新类,example 是类名标识符,整个类定义(包括其所有成员)都将位于一对花括号({})之间,花括号在java 中的使用方式与c或c++ 相同,目前,不必考虑类的细节,只是有一点要注意,在java 中,所有程序活动都发生在类内,这就是为什么java 程序是面向对象的。

下面一行程序是单行注释:

// your program begins with a call to main().

这是java 支持的第二种类型的注释。单行注释(single-line comment )始于“//”,在该行的末尾结束。通常情况下,程序员们对于较长的注释使用多行注释,而对于简短的、一行一行的注释则使用单行注释。

下一行代码如下所示:

public static void main(string args[]) {

该行开始于main( ) 方法。正如它前面的注释所说,这是程序将要开始执行的第一行。所有的java 应用程序都通过调用main( ) 开始执行(这一点同c/c++ 一样),我们在此还不能对该行的每一个部分作出精确的解释,因为这需要详细了解java 封装性的特点,但是,由于本书第1部分中的大多数例子都用到这一行代码,我们将对各部分作一个简单介绍。

关键字public 是一个访问说明符(access specifier),它允许程序员控制类成员的可见性。如果一个类成员前面有public ,则说明该成员能够被声明它的类之外的代码访问(与public 相对的是private ,它禁止成员被所属类之外的代码访问)。在本例中,main( ) 必须被定义为public 类型,因为当程序开始执行时它需要被它的类之外的代码调用。关键字static 允许调用main( ) 而不必先实现该类的一个特殊实例。这是必要的,因为在任何对象被创建之前,java 解释器都会调用main() 。关键字void 仅通知编译器main() 不返回任何值。你将看到,方法也可以有返回值。如果这一切似乎有一点令人费解,别担心。所有这些概念都将在随后的章节中详细讨论。

前面已经介绍过,main() 是java 程序开始时调用的方法。请记住,java 是区分大小写的。因此,main 与main是不同的。java 编译器也可以编译不包含main() 方法的类,但是java 解释程序没有办法运行这些类。因此,如果你输入了main 而不是main ,编译器仍将编译你的程序,但java 解释程序将报告一个错误,因为它找不到main() 方法。

你要传递给方法的所有信息由方法名后面括号中指定的变量接收,这些变量被称为参数(parameters )。即使一个方法不需要参数,你仍然需要在方法名后面放置一对空括号。在main() 中,只有一个参数,即string args[] ,它声明了一个叫做args的参数,该参数是string 类的一个实例数组(注:数组是简单对象的集合)。字符串类型的对象存储字符的串。在本例中,args接收程序运行时显示的任何命令行参数。本例中的这个程序并没有使用这些信息,但是本书后面讲到的其他一些程序将使用它们。

该行的最后一个字符是“{”。它表示了main() 程序体的开始。一个方法中包含的所有代码都将包括在这对花括号中间。

另外,main( ) 仅是解释器开始工作的地方。一个复杂的程序可能包含几十个类,但这些类仅需要一个main( ) 方法以供解释器开始工作。当你开始引用被嵌入在浏览器中的java 小应用程序时,你根本不用使用main( ) 方法,因为web浏览器使用另一种不同的方法启动小应用程序。

接下来的代码行如下所示。请注意,它出现在main( ) 内。

system.out.println("this is a simple java program.");

本行在屏幕上输出字符串“this is a simple java program.”,输出结果后面带一个空行。输出实际上是由内置方法println ( ) 来实现的。在本例中,println ( ) 显示传递给它的字符串。你将会看到,println ( ) 方法也能用来显示其他类型的信息。该行代码开始于system.out ,现在对它作详细说明为时尚早,需涉及很多复杂内容。简单的说,system 是一个预定义的可访问系统的类,out是连接到控制台的输出流。

可能你已经猜到了,控制台输出(输入)在实际的java 程序和小应用程序中并不经常使用。因为绝大多数现代计算环境从本质上讲都是窗口和图形界面的,控制台i/o 主要被用简单的实用工具程序和演示程序使用。在本书后面,你将会学到用java 生成输出的其他方法。但是目前,我们将继续使用控制台i/o 方法。

请注意,println( ) 语句以一个分号结束。在java 中,所有的语句都以一个分号结束。该程序的其他行没有以分号结束,这是因为从技术上讲,它们并

扫描关注微信公众号