概 述 1.1 面向对象的程序设计 从计算机诞生至今,程序设计语言从最初的机器语言、汇编语言到后来面向过程的结构化高级语言,发展到面向对象的程序设计语言。在这个过程中,程序员逐步摆脱了机器的层面,可以在更抽象的层面上表达程序设计意图。 面向过程程序设计的中心思想是用计算机能够理解的逻辑来描述和表达要解决的问题及其具体的解决过程。数据结构、算法是面向过程问题求解的核心。面向过程程序设计可以精确、完备地描述具体的求解过程,但还不足以把一个包含了多个相互关联过程的复杂系统表述清楚,而面向对象程序设计则可以胜任这项工作。 1.1.1 什么是面向对象程序设计 面向对象程序设计(Object-Oriented Programming,OOP)代表了一种全新的程序设计思路和观察、处理问题的方法。面向对象就是将世界看作是由一系列彼此关联、相互之间能够通信的对象所组成的,它将现实世界中的实体反映到程序中,这样就可以用编程语言来表达这个世界了。 所谓对象是一种看问题的观点,是对现实世界中各种实体的一种抽象,它是现实世界中某个具体的物理实体在计算机逻辑中的映射和体现。对象具有自己的状态和行为,通过对消息的反映来实现一定的功能。 OOP以要解决的问题中所涉及到的各种对象为主要考虑因素,它力求符合人们自然的思维习惯,降低问题的难度,从而以较小的代价和较高的效率获得较满意的效果。它关心的不仅仅是孤立的单个过程,而是包含所有这些过程的整个系统,它能够用计算机逻辑来模拟、描述系统本身,包括系统的组成、系统的各种可能状态以及系统中可能产生的各种过程与过程引起的系统状态的转换。 1.1.2 OOP的基本特征 所有面向对象的编程语言都具有3个基本特征:封装(encapsulation)、多态(polymorphism)和继承(inheritance)。下面对它们一一进行介绍。 1.封装 封装就是指利用抽象数据类型将数据及对数据的操作封装在一起,数据以及对数据的操作等实现细节被隐藏在抽象数据类型的内部,而对外仅仅表现为与其他抽象数据类型之间的接口,这使得用户只能通过接口去访问数据,从而构造出具有独立含义的软件代码,增强了代码的可维护性。在OOP中,抽象数据类型是用类(class)这种结构来表示,类是基本的封装单元,是同种对象的集合与抽象。不同的对象常常具有一些共性,把这个共性抽象出来就是类。类中定义一类对象共有的属性和行为,通过对类实例化就可生成该类的一个对象。根据封装原则,用户只可以通过接口访问类中的部分成员方法和成员变量。 2.继承 继承是OOP中最突出的特征之一,它是一种基于已有类创建新类的机制。通过继承机制,一个新类可以通过对已有类进行修改和扩充来实现,新类拥有已有类的成员变量和成员方法,而且还可以修改现有的成员和添加新的成员。其中被继承的已有类叫做超类(superclass),继承的新类叫做它的子类(subclass)。建立一个已有类的子类时,不必写出全部的成员变量和成员方法,只要简单的声明这个类是从其他已有类继承过来的就可以了,这样就可以使用被继承类中的所有成员。继承机制的优点在于:易于修改代码,易于重用代码,以层次结构组织对象。 3.多态 多态是OOP中继封装和继承之后的第3大基本特征。多态也称作动态绑定、后期绑定或运行时绑定。继承允许将对象视为它自己本身的类型或其基类型来处理,因为它允许将多种类型(从同一基类导出的)视为同一类型。而多态则允许一种类型表现出与其他相似类型之间的区别。它隐含表明对象可以属于两个或两个以上的类,它的作用是消除类型之间的耦合关系。多态不但能够改善代码的组织结构和可读性,还能够创建“可扩展”的程序,提高了代码的重用性和可维护性,它通过分离“做什么”和“怎么做”,从另一个角度将接口和实现分离开来。 1.1.3 OOP的优势 面向对象的编程语言与传统的编程语言相比具有很多优势,这些优势在大型项目的开发中体现尤为明显。掌握了OOP方法能够给程序员带来更多的便利。它的主要优势如下: (1)简单性:由于软件对象可以对现实世界中的真实对象建模,因此减少了程序的复杂度,程序结构变得既清晰又简单。 (2)模块性:每个对象可构成一个单独的模块,该模块的内部工作方式与系统的其他部分相分离。模块性是OOP具有可重用性和可扩展性的基础。 (3)可重用性:可重用性是指在一个项目中开发的模块,不仅能够在这个项目中使用,而且可以重复地在其他项目中使用。可重用性是OOP的一个核心思路,OOP的封装、继承、多态3个特点无一例外、或多或少地都围绕着可重用性这个核心并为之服务。 (4)可扩展性:可扩展性是对现在应用软件提出的又一个重要要求,即要求应用软件能够容易地进行扩充和修改。OOP的可扩展性主要体现在它对模块化技术具有更加有效的支持。 1.2 了解Java Java是Sun公司推出的新一代面向对象的编程语言。自从1996年初Java 1.0版的正式发表,Java就迅速引起了整个计算机界的高度关注,并成为Internet上重要编程的语言。 Java诞生于1991年,它是由Sun Microsystems的一个开发小组共同构想的结果。该小组最初将其称为“Oak”,1995年正式更名为“Java”。设计Java的最初目的并不是源于Internet,而是为了创建一种用于消费类电子设备的独立于平台的语言。1991年到1993年期间,这种语言一直被用来开发消费类电子设备,但由于市场因素,Sun公司最终放弃了开发和研制。后来随着Internet的迅速发展,Sun公司看到了这种语言在计算机网络上的广阔应用前景,最终促使了Java的诞生。 由于Java提供了强大的图形、图像、音频、视频、多线程和网络交互能力,因此它已经成为当今推广最快的、最为流行的网络编程语言。Java的出现引起了软件开发的重大变革,成为推动IT业蓬勃发展的最新动力,对整个计算机软件业的发展产生了重大而深远的影响。 1.2.1 Java的特点 Java是由C++发展而来的,但它去掉了C++中一些容易引起错误的特性,是一种完全面向对象的编程语言。与C++相比,Java具有很多的优点,它是一种简单的、面向对象的、平台无关的、动态的、分布式的、多线程的、健壮的编程语言。 1.简单 Java是从C++发展而来的,但却比C++语言简单许多,从某种意义上讲,Java是C/C++的一个变种。它去除了C++中的指针、头文件、多重继承、运算符重载等一些不是绝对必要的功能。Java虽然简单,但功能却更加强大,它增加了一些特有的机制,如异常处理机制,使得程序设计变得更加容易。 2.面向对象 Java是一种完全面向对象的编程语言。Java程序由一个或多个类组成,由类来定义对象的各种属性和行为。所有面向对象语言都有3个基本特征:封装、多态和继承。Java也不例外。Java语言建立在类这个逻辑结构之上,所有非基本数据类型都是通过类实现,类是Java的核心。 3.平台无关 Java是平台无关的语言,Java程序不用修改就可以在不同的软、硬件平台上运行,Java的平台无关性通过Java虚拟机实现。平台无关性是Java最重要的特点之一,也是Java区别于其他成熟语言的革命性变化,它为Java能在多平台的网络上运行创造了条件。 4.动态 Java的动态特性也是其面向对象设计方法的扩展。它允许程序动态地装入运行过程中所需要的类,在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行。 5.分布式 分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同主机上;操作分布是指把一个计算分散在不同主机上处理。由于Java支持WWW客户-服务器计算模式,因此,它同时支持这两种分布性。对于前者,Java提供了一个称作URL的对象,利用这个对象,可以打开并访问具有相同URL地址的对象,访问方式与访问本地文件系统相同。对于后者,Java的Applet小程序可以从服务器下载到客户端,即部分计算在客户端进行,提高了系统执行效率。Java提供了一整套网络类库,开发人员可以利用类库进行网络程序设计,方便地实现Java的分布式特性。 6.多线程 线程是操作系统中的一个概念,它又被称作轻量进程,是比传统进程更小、可并发执行的单位。C和C++采用单线程体系机构,而Java却提供了多线程支持。多线程的优点是具有更好的交互性以及实时行为。Java支持多线程控制功能,大大地简化了多线程应用程序的开发。它提供了一个Thread类,由它负责启动运行、终止线程并可检查线程状态。Java的线程还包括一组同步原语。这些原语负责对线程实行并发控制。利用多线程编程接口,开发人员可以方便地编写支持多线程的应用程序,提高程序执行效率。 7.健壮性 Java将大量工作放在了早期检查、排除出现错误的条件上,表现在异常处理、取消指针、内存保护等功能上。Java程序不可能造成系统的崩溃,因为Java仔细检查对内存的每次访问,确认访问是安全合法的,而且不至于引起任何问题。如果出现某种异常,系统也不会崩溃,而是把该类异常抛出。系统会发现该类异常,并加以处理。传统的计算机程序可以任意访问计算机的全部内存,程序可能修改内存中的任意值,这就会出现问题。Java语言不支持指针,也就杜绝了对内存的非法访问。Java程序只能访问内存中允许它们访问的那些部分,所以Java程序不可能修改不允许修改的内存值。因此,Java程序具有健壮性的特点。 8.垃圾回收 用C/C++编程必须仔细跟踪所用的内存单元,当某一单元不再使用时,必须让程序释放它,方可再用。在大型的项目中,这可能会很困难,并往往成为出错的根源。而在Java中,系统不仅要分配对象所用的内存资源,还需要跟踪资源的使用情况,定期检查出不再使用的内存,由系统自动回收并做再次分配,这被称为垃圾回收机制。因此,Java程序中将不用考虑内存的释放问题,从而减轻了程序员的负担,提高了程序的安全性。 1.2.2 Java虚拟机 Java的一个最重要的特点——平台无关性是通过Java虚拟机屏蔽了与具体平台相关的信息来实现的。一般的高级语言程序如果需要移植到另一个平台上使用,则至少需要重新编译才能保证正常运行,而Java程序只需被编译成在Java虚拟机上运行的字节代码,就可以直接在不同平台上运行。 Java虚拟机(Java Virtual Machine,JVM)是用软件模拟实现的虚拟计算机。它定义了指令集、寄存器集、类文件结构栈、垃圾收集堆、内存区域等组件,提供了跨平台能力的基础框架。在JVM上,有一个Java解释器用来解释Java编译器编译后的程序。程序员在编写完程序后,通过Java编译器将Java源程序编译为字节代码,字节代码是一种与平台无关的文件格式,它能够被Java解释器执行。任何一台机器只要安装了Java解释器,就可以运行这个程序,而不管字节代码是在何种平台上生成的。 1.2.3 Java的核心技术 Java除了具有平台无关性、完全面向对象、多线程等特点外,J2EE(Java 2 Enterprise Edition)平台还全面支持如Java Servlet、JavaBean、JDBC、JSP以及XML等新技术,来满足企业级应用对软件在安全性、可靠性以及高效性上的要求,J2EE已经成为开发企业级应用的工业标准。 1.Java Servlet Servlet是服务器端的Java小程序,Servlet全部由Java编写并且生成Html文档,它扩展了Web服务器的功能。当客户端发送请求时,服务器端便开始执行Servlet程序。 2.JDBC JDBC(Java DataBase Connectivity)为访问不同的数据库提供了统一的途径。同ODBC一样,JDBC对开发者屏蔽了一些细节问题,使得JDBC对数据库的访问也具有平台无 关性。 3.JavaBean和EJB JavaBean实际上是用Java写的控件,类似于微软的ActiveX。EJB(Enterprise JavaBean)是企业级的JavaBean,它们提供了一个框架来开发和实施分布式商务逻辑,从而显著地简化了具有可伸缩性和高度复杂性的企业级应用的开发。 4.JSP JSP(Java Server Pages)是Sun公司1999年推出的一种动态网页技术标准,是一种运行于Web服务器端的脚本语言。JSP是基于Java Servlet以及整个Java体系的Web开发技术,利用这一技术可以建立安全、先进、跨平台的动态网页。JSP与Microsoft的ASP(Active Server Pages)技术相似,不同的是编程语言:ASP采用VBScript,JSP采用Java。JSP功能更强,具有动态页面和静态页面分离、独立于硬件平台、编译后运行等特点。 5.XML XML(eXtensible Markup Language)是一种可以定义标记的语言,用于在不同的商务过程中共享数据。虽然XML的发展和Java的发展相互独立,但它们的共同目标都是平台无关性。将Java与XML组合可以得到一个完美的具有平台独立性的解决方案。 1.3 Java开发环境的搭建 Java开发的核心是Java开发工具包(Java Development Kit,JDK),它是由Java的开发工具、运行环境以及Java基础类库组成。JDK并不是一个像JBuilder这样的开发软件,它不提供具体的开发环境,只提供开发软件必须用到的类库和Java语言规范。因此,JDK是Java开发所必不可少的一个工具。 在Sun公司的网站(http://java.sun.com)上可以下载JDK的安装程序。JDK的发布版本以1.0、1.1、1.2、1.3来表示。目前JDK的最高版本为1.6,将JDK 1.2或更高版本称为Java 2。根据应用环境的不同,JDK还可以分为3个不同的版本。 (1)J2SE(Java 2 Standard Edition):用于普通标准应用程序的开发; (2)J2EE(Java 2 Enterprise Edition):用于企业级应用程序的开发; (3)J2ME(Java 2 Micro Edition):用于移动设备、嵌入式设备上应用程序的开发。 它们之间的共同点是语言相同,不同点是所捆绑的类库不同。通常所说的JDK其实是指J2SE。下面以J2SE JDK 1.5为例,介绍JDK安装和配置的过程。 1.3.1 JDK和帮助文档的安装 1.开始安装JDK 双击下载的JDK安装程序,弹出“许可协议”对话框,选择“接受协议”选项,然后单击“下一步”按钮。 2.选择安装目录 不同版本JDK默认的安装目录不同。对于jdk-1_5_0_11-windows-i586-p.exe,默认的安装目录是C:\Program Files\java\jdk1.5.0_11\,可以单击“更改”按钮选择安装目录,如 图1.1所示。 3.选择安装的组件 选择安装目录的同时,还可以选择所要安装的组件,推荐安装所有的组件。然后单击“下一步”按钮。 图1.1 选择安装目录和安装的组件 4.浏览器注册 如图1.2所示,选择要注册Java插件的浏览器选项,然后单击“下一步”按钮。 图1.2 浏览器注册 5.单击“完成”按钮,结束安装JDK 6.安装JDK帮助文档 JDK帮助文档并不在JDK的安装文件中,而查看JDK帮助文档又是了解JDK最直接最有效的途径。同样可以在http://java.sun.com上下载JDK帮助文档的压缩包,下载完成后可以将其解压缩到C:\Program Files\java\jdk1.5.0_11\docs目录下,然后打开其中的index.html链接,就可以浏览JDK帮助文档了,如图1.3所示。 图1.3 JDK帮助文档 1.3.2 JDK 1.5目录结构 JDK 1.5的目录结构如表1.1所示,其中列出了主要的文件和子目录。 表1.1 JDK 1.5目录结构及功能 文件/目录名 功 能 src.jar Java核心API的所有类源文件的归档 bin 包含java、javac等开发工具 demo 包含源代码的程序示例 include 支持本地代码编程技术的C语言头文件 jre Java运行时环境的根目录 lib 包含开发工具使用的文件 bin目录下主要的开发工具包括以下几种。 (1)javac:Java编译器,将Java程序编译成字节码文件的编译工具。 (2)java:Java解释器,将字节码文件进行解释执行的工具。 (3)javadoc:Java文档生成器,利用这个工具可以为Java源程序生成一个HTML文档,其中包括类和接口的描述、类的层次结构、类中的任何字段、方法的索引和介绍,甚至还包括Java文档格式的注释。 (4)jdb:Java调试器,它是一个基于命令行的调试工具,可用来逐行执行程序、设置断点和检查变量的值等。 (5)appletviewer:Applet浏览器,一种执行HTML文件上Java语言编写的Applet的浏览器。 1.3.3 环境变量 环境变量指的是一系列在操作系统上定义的变量,它们能够被操作系统上运行的所有程序来访问。 1.在Windows XP下查看系统环境变量 在桌面上右击“我的电脑”,在弹出的快捷菜单中选择“属性”选项,打开“系统属性”对话框。如图1.4所示,选择“高级”选项卡,在“高级”选项卡中单击“环境变量”按钮。 在如图1.5所示的“环境变量”对话框中,列出了系统的环境变量。在对话框中,不但可以编辑已有环境变量的值,而且还能够新建环境变量。 图1.4 “系统属性”对话框的“高级”选项卡 图1.5 “环境变量”对话框 2.path变量 安装完JDK之后,尝试启动一个命令行窗口,运行javac.exe应用程序,系统提示出现错误,如图1.6所示。 当打开命令行窗口要执行某个命令程序时,系统首先会在当前目录下查找这个程序,如果当前目录下没有这个程序,紧接着系统就会沿着path变量中所指定的目录去查找这个程序。明白了path变量的作用,就可以分析图1.6中发生错误的原因了。javac.exe应用程序在C:\Program Files\java\jdk1.5.0_11\bin目录下,当在命令行窗口中直接运行javac.exe应用程序时,系统首先会在当前目录(即C:\Documents and Settings\admin)下查找这个程序,显然在当前目录下没有这个程序,然后系统会沿着path变量中设置的路径继续查找,而C:\Program Files\Java\jdk1.5.0_11\bin目录没有加入到path变量中,因此出现上述错误。为了能在任何目录下方便地使用JDK安装目录下bin子目录中的各种工具,需要设置“path= C:\Program Files\java\jdk1.5.0_11\bin”。 图1.6 运行javac.exe出现错误 以后每次在命令行窗口中运行bin目录下的命令程序时,系统会自动将C:\Program Files\java\jdk1.5.0_11\bin目录加入搜索路径。当再次运行javac.exe应用程序时,屏幕上列出了这个命令程序的帮助文档,这表明path变量已经设置正确,如图1.7所示。 图1.7 javac.exe帮助文档 3.classpath变量 classpath变量的作用是告诉JVM到哪去寻找用户定义的类和第三方提供的类。举一 个例子来说明classpath变量的作用。 首先在E:\chapter01目录下建立一个简单的程序Myname.java(扩展名为.java)。当没有设置classpath变量时,如果打开命令行窗口直接编译Myname.java,系统就会提示找不到这个程序,如图1.8所示。 图1.8 找不到Myname.java 在这种情况下,如果想要运行这个程序,则可以首先进入这个程序所在的目录,然后对其进行编译运行,如图1.9所示。 图1.9 进入Myname.java所在目录对其编译运行 这样做显然比较麻烦。当设置“classpath=E:\chapter01”后,便可以在任何当前目录下运行这个程序了,如图1.10所示。 也就是说,当设置了classpath变量之后,JVM便会沿着classpath变量中指定的目录去查找要执行的程序。 注意:当设置了classpath变量后,JVM会沿着classpath变量中指定的目录去查找要执行的类文件,不会再到当前目录下查找它。 例如现在设置“classpath=E:\chapter02”,打开命令行窗口进入E:\chapter01目录运行Myname.java程序,会再次出现错误。如果想把当前目录也加入到classpath变量中,则可以设置“classpath=.; E:\chapter02”,“.”便代表当前目录。再次进入E:\chapter01目录运行Myname.java程序便能成功。 图1.10 直接运行Myname.java 注意:classpath变量的值可以有多个,值与值之间必须用“;”隔开。 多个类可以从属于一个群组,这个群组被称为“包”,包文件的扩展名为“.jar”,使用包文件时会有一点变化。必须在classpath变量中将包文件的名称写清楚,而不仅仅指明它所在位置的目录。例如,在E:\chapter01目录下有一个名为Program.jar的包文件,则需要设置“classpath= .; E:\chapter01\Program.jar”。 现在来比较一下path环境变量和classpath环境变量的作用:path环境变量是指定执行的命令程序所在的目录,而classpath环境变量则是指定Java虚拟机要执行的类所在的目录。 1.4 Java集成开发环境 目前Java开发领域的各种集成开发环境(Integration Developer Environment,IDE)呈现出百花齐放的局面,从Xinox Software的JCreator到Borland的JBuilder、IBM的Visual Age for Java、Oracle的JDeveloper、Sun的Forte for Java,还有Eclipse、NetBeans 等。这么多的IDE繁荣了Java开发工具家族,但是也为开发人员的选择提出了难题。这些IDE有着较大的差别,在一种开发环境下开发的项目不能很方便地移植到另一种开发环境中,这就要求更为谨慎地选择适合项目目标的开发工具。下面介绍3种Java集成开发环境:JCreator、JBuilder和Eclipse。 1.4.1 JCreator简介 JCreator是一种小巧灵活的Java集成开发环境,它将Java程序的编写、编译、运行和调试集成于一身,且无需进行环境变量的设定,是一种比较实用的Java应用程序开发工具。下面对JCreator LE v4.00版本做一下简要的介绍。 1.JCreator中JDK和帮助文档的设定 Java程序开发需要安装JDK,但JCreator安装程序本身并不附带JDK,所以利用JCreator进行开发也必须安装JDK。在JCreator安装时,会询问JDK和帮助文档的安装文件夹,此时只要按它的安装提示向导,设定好它们的位置即可,如图1.11所示。 图1.11 安装时指定JDK和帮助文档的位置 如果在安装时没有设定JDK的位置,那么,JCreator也提供了手动设定JDK的方法。 在JCreator的主菜单中单击Configure菜单中的Options菜单项,在弹出的对话框中左侧的导航树中选中JDK Profiles节点,如图1.12所示。 图1.12 手动设置JDK 如果右侧的JDK列表中已存在JDK名称且颜色不为红色,则代表JDK已被正确设置。如果JDK的名称为红色,则代表该JDK安装有问题,可选中该JDK文件,单击Delete按钮将其删除,然后单击new按钮,在弹出的对话框中找到要安装的JDK所在的根目录,然后单击“确认”按钮即可。 完成JDK设置后,还需要继续设置JDK的帮助文档。如果在JDK的安装目录下已经存在一个名为docs的目录,则JCreator会自动将该目录作为当前JDK的帮助文档目录进行添加,此时选项JDK Profile对话框中的Document选项卡应该看到该目录。如果JDK的帮助文档不是安装在JDK的docs目录中,则需要在JCreator中手动加入。在Options对话框中再次选中设定好的JDK,单击Edit按钮。在弹出的JDK Profile对话框中选中Documentation选项卡,单击Add按钮,在弹出的对话框 中选择JDK文档的安装路径,然后确定即可,如图1.13 所示。 2.JCreator的工程(project)和工作空间(workspace) JCreator利用工程(project)管理相应的文件,一个工程由多个Java源文件和其他一些文件组成,JCreator中工程文件的扩展名为.jcp。JCreator的工作空间(workspace)用来管理工程,一个工作空间中可以包含多个工程,JCreator中工作空间文件的扩展名为.jcw。JCreator规定,一个工程必须包含在一个工作空间中。所以,当创建一个工程时,JCreator会自动创建一个工作空间包含当前工程。JCreator在同一时刻只容许打开一个工作空间。 3.JCreator编辑界面的组成 JCreator编辑界面主要由文件视图、类视图和包视图、代码视图、输出视图以及编译按钮组成,如图1.14所示。 图1.14 JCreator编辑界面 (1)文件视图 文件视图用来显示工程中的所有文件,并且可以显示当前的工程名称和工程所在工作空间的名称。一个工作空间中可以包含多个工程,但只能有一个活动工程。活动工程是指当前起作用的工程。 (2)代码视图 用来编辑工程文件的源代码。在文件视图中双击某个文件名称,即可在代码视图中对该文件进行编辑。JCreator提供了代码帮助的功能,即如果输入相应的方法或变量,那么,代码视图可提供该方法或变量的动态提示。 (3)类视图 类视图显示了当前显示在代码视图中Java源文件的类的层次和类中的方法。双击某一方法将直接在代码视图中定位到该方法的定义处。 (4)输出视图 输出视图主要用来输出编译相关的信息。如果有错误信息出现,双击错误信息则可在源代码中定位该错误。 (5)编译按钮 只有将工程文件进行编译后才能进行运行测试等工作。文件编译按钮负责编译当前在代码视图中打开的Java源文件;工程编译按钮则负责编译工程中所有的Java源文件。 4.利用JCreator进行开发的步骤 (1)首先要建立一个工作空间。选择File菜单中的New选项,选择Blank Workspace选项,在文本框中输入工作空间的名称,单击Finish按钮。完成后文件视图中就显示出了这个工作空间名称。 (2)接下来要在工作空间中添加工程。在文件视图中,右击该工作空间名称,在弹出的快捷菜单中选择Add new Project选项,选择工程模板,然后单击Next按钮,输入工程名称,最后单击Finish按钮。完成后,该工程名称便在文件视图中的工作空间中显示出来。 (3)最后在工程中建立源文件。在文件视图中,右击该工程名称,在弹出的快捷菜单中选择Add菜单中的New File选项,选择文件类型,单击Next按钮,然后在文本框中输入文件名称,单击Finish按钮。完成之后便可以在代码视图中对该文件进行编辑了。 JCreator中创建的工作空间、工程以及源文件都默认放在JCreator安装目录下的MyProjects子目录下。创建的同时,可以根据需要更改它们所在的位置。 1.4.2 JBuilder简介 JBuilder是Borland公司开发的一套Java集成开发环境。它将Java应用程序的编写、调试、构建、发布等所有功能集于一身。利用JBuilder,可以方便地编写、调试、运行Java程序,特别是图形界面的程序。 1.JBuilder的特点 概括起来,JBuilder的主要特点包括以下方面。 (1)支持Swing、JSP、Servlets、EJB、Web Service、XML等最新的Java技术。 (2)集成了多种主流服务器,可以快速开发企业应用。 (3)能用Servlets和JSP开发动态Web 应用。 (4)开放式集成开发环境框架,可以将第三方工具良好地集成到自身环境中,扩展 IDE功能。 (5)JBuilder是100%的Java开发工具,对Windows、Linux与Solaris平台上的开发提供跨平台支持。 (6)提供团队开发功能,集成了多种版本控制系统。 (7)引入了快速生成项目的UML(Unified Modeling Language,统一建模语言)模型。 2.JBuilder 2006的特点及安装目录结构 JBuilder 2006是专为加速企业级Java应用而设计的。它基于Eclipse平台,因此具有极强的灵活性和可扩展性。JBuilder 2006自带JDK 1.5,它集成了几乎所有的Java技术,是全球领先的Java集成开发环境。对等协作功能是JBuilder 2006最大的新特性,可以实现对等伙伴之间的通信。此外,还包括共享调试、共享编辑、安全管理及远程访问等。这些功能大大降低了分布式团队的协作成本和难度,提高了软件的开发效率和开发质量。 安装JBuilder 2006企业版的过程比较简单,这里不再赘述。下面介绍一下安装后JBuilder 2006的主要目录及其功能,如表1.2所示。 表1.2 JBuilder 2006目录结构及其功能 目 录 功 能 bin 包括一系列可执行文件,实用程序和相关配置文件 doc 包括JBuilder 2006帮助系统所需的归档文件 extras 包括一些扩展工具包,例如ant工具包、struts工具包 jdk 1.5 包括jdk 1.5 samples 包括使用JBuilder 2006开发的多个实例 templates 包括各种开发所需的模版 OptimizeitEntSuite2006 包括Borland公司的优化套件Optimizeit Suite 以上是JBuilder 2006的主要目录,在JBuilder 2006安装文件夹下,还包括授权、版本和库等其他文件或者文件夹。 3.JBuilder应用浏览器 启动JBuilder 2006集成开发环境,首先呈现在用户面前的开发界面称为JBuilder应用浏览器(AppBrowser),它由主菜单、工具栏、状态栏、工程视图、结构视图、代码视图、消息视图和调试器等部分组成,第一次启动JBuilder 2006,Welcome工程文件将被集成环境自动打开,如图1.15所示。用户可以在一个应用浏览器窗口中实现大部分的开发功能,包括代码编辑、可视化设计、编译、调试等操作,也可以打开多个应用浏览器窗口,并在不同窗口之间切换。JBuilder 2006中各种工具和面板的功能与JCreator中的十分相似,随着开发的深入,读者可以逐步了解这些功能,这里不再赘述。 在JBuilder 2006中进行项目开发的步骤与JCreator中的类似,这里也不再赘述。 JCreator是一个小型的Java集成开发环境,它的关注点主要在Java应用程序的编辑、编译和运行,而在J2EE开发、EJB、Web Services和服务器支持等方面有明显的不足。与JCreator相比,无论在Java代码编辑、J2EE开发、团队协作、可扩展性还是其他方面, JBuilder 2006都具有非常大的优势,并且对于初学者,它容易入门和掌握,可以快速提高开发人员的编程能力。因此,JBuilder 2006是一款非常优秀的Java集成开发环境。 图1.15 JBuilder 2006集成开发环境 1.4.3 Eclipse SDK简介 目前所有的IDE中,Eclipse SDK可以说是最有发展前途的产品之一。Eclipse SDK是一个开放源代码的、与NetBeans和Borland JBuilder类似的基于Java的可扩展的开发平台。该平台为编程人员提供了一流的Java集成开发环境,其功能甚至能够超过由专业的集成环境供应商提供的商业化产品,例如JBuilder。 Eclipse.org 协会管理和指导Eclipse SDK正在进行的开发,IBM最近几年里也一直在大力支持Eclipse SDK的研发,目标是将其做成可以替代IBM Visual Age for Java(简称IVJ)的下一代IDE开发环境,并于2001年11月宣布投入4千万美元的资金到该项目中。Eclipse.org 协会吸收了许多软件工具提供商,包括Borland、Merant、Rational、RedHat、SuSE、TogetherSoft和QNX。从那以后还有其他公司相继加入,包括Hewlett Packard, Fujitsu,Sybase。这些公司分别向理事会派了一名代表,这个理事会负责确定Eclipse SDK项目的方向和范围。 用户可以进入Eclipse的官方网站http://www.eclipse.org,单击Downloads按钮,下载一个Eclipse SDK的压缩包。目前最新的版本为3.2.2,但是3.2.2版本的多国语言包还没有出来,所以可以下载一个稍早一点的版本3.2.1。用户可以根据实际情况下载相应的压缩包。如果使用的是Windows操作系统,则需要下载的正确版本为eclipse_SDK_3.2.1_win32.zip,同时,也可以在网站上下载多国语言包NLpack1_eclipse_SDK_3.2.1_win32.zip,安装该语言包可以得到中文版的Eclipse SDK。 1.Eclipse SDK的安装和运行 安装Eclipse SDK的步骤非常简单,只需将下载的压缩包直接解压到用户喜欢的路径即可。然后,将多国语言包解压并将解压出来的plugins文件夹和features文件夹覆盖eclipse文件夹下的同名文件夹即可。然后,双击Eclipse SDK安装文件夹下的eclipse.exe应用程序来启动Eclipse SDK。在启动Eclipse SDK之前,需要首先安装好JDK,并设置好path环境变量。Eclipse SDK压缩包内并不包含JDK,因此需要用户另行安装JDK,否则Eclipse SDK是无法正常运行的,如图1.16所示。 安装并设置好JDK后,再次启动Eclipse SDK,在进入欢迎界面之前首先要选择工作空间,如图1.17所示。Eclipse SDK的默认欢迎界面如图1.18所示。 图1.16 未正确安装JDK 图1.17 选择工作空间 图1.18 Eclipse SDK欢迎界面 Eclipse SDK的默认欢迎界面中有5个按钮,分别是“概述”、“新增内容”、“样本”、“教程”和“工作台”。前面4个按钮都是帮助性质的,用户通过这些按钮可以分别了解 Eclipse SDK的所有内容、Eclipse SDK的教程、样本代码和此版本中的新增内容。单击位于界面右方的“工作台”按钮,进入工作台界面,如图1.19所示。 图1.19 工作台 Eclipse SDK工作台窗口由多个窗格组成,窗格的集合称为透视图(perspective)。默认的透视图是Java透视图,此外还有CVS资源库研究透视图、Java类型层次结构透视图、Java浏览透视图和插件开发透视图等。用户还可以建立多个工作台窗口,并且能够定制和复位透视图。Java透视图中还包括多个视图,默认的有包资源管理器、层次结构、大纲、问题、Javadoc和声明,此外还有Ant、导航器、进度和错误日志等多个视图。 每当在Eclipse SDK中新建项目时,都会在指定的workspace文件夹中产生一个和项目同名的文件夹以存放与该项目相关的全部文件。Eclipse SDK中项目的开发步骤与JCreator中的类似,这里不再赘述。 2.Eclipse SDK的插件体系结构 Eclipse SDK最有魅力的地方在于它的插件体系结构。就其本身而言,它只是一个框架和一组服务,用于通过插件、组件构建开发环境。在Eclipse SDK中实现的绝大部分功能是由相应的插件完成的,它附带了一个标准的插件集,甚至用来开发Java程序的JDT(Java Development Tools),也只不过是Eclipse SDK系统中的一个普通插件而已。整个Eclipse SDK体系结构就像一个大拼图,可以不断地向上加插件,同时,现有插件上还可以再加插件。虽然大多数用户只是将Eclipse SDK当作Java IDE来使用,但Eclipse SDK的目标不仅限于此,其未来的目标不仅是成为专门开发Java程序的IDE环境,而且根据Eclipse SDK的体系结构,通过开发插件,它能扩展到任何语言的开发,甚至能成为绘图的工具。目前,Eclipse SDK已经开始提供C语言开发的功能插件,例如CDT(C Development Tools)。另外,Eclipse SDK还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展Eclipse SDK的软件开发人员,可以利用它开发自己的功能插件,同时也可以通过开发新的插件扩展现有插件的功能。 尽管大多数开发人员不会使用Eclipse SDK来开发插件,或创建基于Eclipse SDK的新产品,但是Eclipse SDK的开放源代码性质所意味的并不只是它使得Eclipse SDK可以免费使用。开放源代码鼓励创新,并激励开发人员为公共开放源代码库贡献代码,为这个项目贡献的开发人员越多,这个项目就会变得对每个人越宝贵。Eclipse SDK提供了强大的个人版本管理机制,每一次被保存的更改都可以得到恢复。它默认为版本管理工具CVS提供了接口,可以非常方便地连接到CVS服务器上。通过CVS版本管理,Eclipse SDK为团队开发提供良好的环境。 正是由于Eclipse SDK的种种优秀特性,使得Eclipse SDK在众多继承开发环境中脱颖而出,成为不少软件开发人员的首选开发工具。 1.5 总 结 本章主要介绍了一些利用Java开发的基础知识。首先,介绍了面向对象的概念、特点以及面向对象程序设计的优势,紧接着介绍了Java的特点和Java虚拟机。本章的重点在1.3节——Java开发环境的搭建,着重介绍了JDK的安装以及环境变量的配置。最后介绍几种Java集成开发环境,包括JCreator、JBuilder和Eclipse SDK,在今后的学习过程中,读者可以根据自身的需要来选择合适的开发环境。 1.6 习 题 1.什么是面向对象? 2.简述面向对象程序设计的3大基本特征。 3.面向对象程序设计的主要优势是什么? 4.简述Java语言的主要特点。 5.什么是Java虚拟机?什么是JDK? 6.解释path环境变量和classpath环境变量的作用。 7.解释java.exe和javac.exe的作用。 8.总结JCreator、JBuilder和Eclipse SDK 3种集成开发环境各自的特点。 20 Java语言基础教程 19 第1章 概述