第1章概述面向对象程序设计从计算机诞生到现在,程序设计语言从最初的机器语言、汇编语言到后来面向过程的结构化高级语言,最后发展到面向对象的程序设计语言。在这个过程中,程序员逐步摆脱了机器的层面,可以在更抽象的层面上表达程序设计意图。面向过程程序设计的中心思想是用计算机能够理解的逻辑来描述和表达待解决的问题及其具体的解决过程。数据结构、算法是面向过程问题求解的核心。面向过程程序设计可以精确、完备地描述具体的求解过程,但却不足以把一个包含了多个相互关联过程的复杂系统表述清楚,而面向对象程序设计则可以胜任这项工作。什么是面向对象程序设计面向对象程序设计(Object—OrientedProgramming,OOP)代表了一种全新的程序设计思路和观察、处理问题的方法。面向对象就是将世界看作是由一系列彼此关联、相互之间能够通信的对象所组成的,它将现实世界中实体反映到程序中,这样就可以用编程语言来表达这个世界了。所谓对象是一种看问题的观点,是对现实世界中各种实体的一种抽象,它是现实世界中某个具体的物理实体在计算机逻辑中的映射和体现。对象具有自己的状态和行为,通过对消息的反映来实现一定的功能。OOP的基本特征1.封装封装就是指利用抽象数据类型将数据及对数据的操作封装在一起。在OOP中,抽象数据类型是用类(class)这种结构来代表的,类是基本的封装单元。2.继承继承是OOP中最突出的特征之一,它是一种基于已有类创建新类的机制。通过继承机制,一个新类可以通过对已有类进行修改和扩充来实现,新类拥有已有类的所有成员变量和成员方法,而且还可以修改现有的成员和添加新的成员。3.多态多态也称作动态绑定、后期绑定或运行时绑定。继承允许将对象视为它自己本身的类型或其基类型来处理,因为它允许将多种类型(从同一基类导出的)视为同一类型。而多态则允许一种类型表现出与其他相似类型之间的区别。OOP的优势1.简单性由于软件对象可以对现实世界中的真实对象建模,所以减少了程序的复杂度,使得程序结构变得既清晰又简单。2.模块性每个对象可构成一个单独的模块,该模块的内部工作方式与系统的其他部分相分离。模块性是OOP具有可重用性和可扩展性的基础。3.可重用可重用性是指我们在一个项目中开发的模块,不仅能够在这个项目中使用,而且可以重复的在其他项目中使用。4.可扩展可扩展性是对现在应用软件提出的又一个重要要求,即要求应用软件能够很方便、容易地进行扩充和修改。了解JavaJava是Sun公司推出的新一代面向对象的编程语言。自从1996年初Java1.0版的正式发表,就迅速引起了整个计算机界的高度关注。由于Java提供了强大的图形、图像、音频、视频、多线程和网络交互能力,它已经成为当今推广最快的最为流行的网络编程语言。Java的出现引起了软件开发的重大变革,成为推动IT业蓬勃发展的最新动力。它的出现对整个计算机软件业的发展产生了重大而深远的影响。Java的特点◆简单◆面向对象◆平台无关性◆动态◆分布式◆多线程◆健壮性◆垃圾回收机制Java虚拟机Java虚拟机(JavaVirtualMachine,JVM)是用软件模拟实现的虚拟计算机。它定义了指令集、寄存器集、类文件结构栈、垃圾收集堆、内存区域等组件,提供了跨平台能力的基础框架。在JVM上,有一个Java解释器用来解释Java编译器编译后的程序。程序员在编写完程序后,通过Java编译器将Java源程序编译为字节代码,字节代码是一种与平台无关的文件格式,它能够被Java解释器来执行。任何一台机器只要安装了Java解释器,就可以运行这个程序,而不管字节代码是在何种平台上生成的。Java的核心技术1.JavaServletServlet是服务器端的Java小程序,Servlet全部由Java编写并且生成Html文档,它扩展了Web服务器的功能。当客户端发送请求时,服务器端便开始执行Servlet程序。2.JDBCJDBC(JavaDataBaseConnectivity)为访问不同的数据库提供了统一的途径。像ODBC一样,JDBC对开发者屏蔽了一些细节问题,使得JDBC对数据库的访问也具有平台无关性。3.JavaBean和EJBJavaBean实际上是用Java写的控件,类似于微软的ActiveX。EJB是企业级的JavaBean。它们提供了一个框架来开发和实施分布式商务逻辑,从而显著地简化了具有可伸缩性和高度复杂性的企业级应用的开发。4.JSPJSP(JavaServerPages)是Sun公司1999年推出的一种动态网页技术标准,是一种运行于Web服务器端的脚本语言。JSP和Microsoft的ASP(ActiveServerPages)技术相似,不同的是编程语言:ASP采用VBScript,JSP采用Java。5.XMLXML(eXtensibleMarkupLanguage)是一种可以定义标记的语言,主要用于在不同的商务过程中共享数据。虽然XML的发展和Java是相互独立的,但它们的共同目标都是平台无关性。将Java与XML组和可以得到一个完美的具有平台独立性的解决方案。Java开发环境的搭建Java开发的核心就是JDK。JDK的全称是Java开发工具包(JavaDeveplepmentKit),它是由Java的开发工具、运行环境以及Java基础类库所组成的。JDK是Java开发所必不可少的一个工具。我们可以在Sun公司的网站的安装程序。根据应用环境的不同,JDK可以分为三个不同的版本:J2SE:Java2StandardEdition,用于普通标准应用程序的开发;J2EE:Java2EnterpriseEdition,用于企业级应用程序的开发;J2ME:Java2MicroEdition,用于移动设备、嵌入式设备上应用程序的开发。JDK和帮助文档的安装JDK的安装和其它应用程序的安装方式相同,这里不再赘述。我们还要在Sun公司网站上下载JDK帮助文档的压缩包,它是我们了解JDK的最直接最有效的途径。下载完成后可以将其解压缩到JDK安装目录下的docs子目录中,然后打开其中的index.html链接,就可以浏览JDK帮助文档了。查看和设置环境变量1.查看环境变量右键点击“我的电脑”—“属性”—“高级”—“环境变量”—“系统变量”2.设置环境变量path变量的作用指定我们执行的命令程序所在的目录。要将其设置为JDK安装目录下bin子目录所在的路径。classpath变量的作用是指定Java虚拟机要执行的类所在的目录。要将其设置为用户定义的类所在目录的路径,它的值可以有多个。Java集成开发环境目前Java开发领域的各种集成开发环境(IntegrationDeveloperEnvironment,IDE)呈现出百花齐放的局面,下面我们介绍三种常用的Java集成开发环境:JCreator,JBuilder和Eclipse。JCreator简介◆优点:小巧实用缺点:在J2EE开发、EJB、WebServices等方面有明显的不足◆JDK和帮助文档的设定:安装时设定和安装后设定◆JCreator的工程(Project)和工作空间(Workspace)JCreator利用工程管理相应的源文件,一个工程由多个Java源文件和其他一些文件组成,Jcreator中工程文件的扩展名为.jcp。JCreator的工作空间用来管理工程,一个工作空间中可以包含多个工程,JCreator中工作空间文件的扩展名为.jcw。◆JCreator编辑界面的组成文件视图、类视图和包视图、代码视图、输出视图以及编译按钮◆利用JCreator进行开发的步骤JBuilder简介JBuilder是Borland公司开发的一套Java集成开发环境。利用JBuilder,可以方便的编写、调试、运行Java程序,特别是图形界面的程序。JBuilder的特点◆支持Swing、JSP、servlets、EJB、WebService、XML等最新的Java技术;◆集成了多种主流服务器,可以快速开发企业应用;◆能用Servlets和JSP开发动态Web应用;◆开放式集成开发环境框架,可以将第三方工具良好地集成进自身环境之中,从而展IDE功能;◆JBuilder是100%的Java开发工具,对Windows、Linux与Solaris平台上的开发提供跨平台支持;◆提供了团队开发功能,集成了多种版本控制系统;◆引入了快速生成项目的UML(UnifiedModelingLanguage,即统一建模语言)模型。JBuilder2006的新特性JBuilder2006是专为加速企业级Java应用而设计的。它基于Eclipse平台,因此具有极强的灵活性和可扩展性。JBuilder2006自带JDK1.5,它集成了几乎所有的Java技术,是全球领先的Java集成开发环境。对等协作功能是JBuilder2006中最大的新特性。对等协作功能可以实现对等伙伴之间的通信。此外,还包括共享调试、共享编辑、安全管理及远程访问等。这些功能大大降低了分布式团队的协作成本和难度,提高了软件的开发效率和开发质量。JBuilder应用浏览器启动JBuilder2006集成开发环境,首先呈现的用户面前的开发界面称为JBuilder应用浏览器(AppBrowser),它有主菜单、工具栏、状态栏、工程视图、结构视图、代码视图、消息视图和调试器等几部分组成,我们可以在一个应用浏览器窗口中实现大部分的开发功能,包括代码编辑、可视化设计、编译、调试等操作。Eclipse简介在目前所有的IDE中,Eclipse可以说是最有发展前途的产品之一。Eclipse是一个开放源代码的、与NetBeans和BorlandJbuilder类似的一种基于Java的可扩展的开发平台。我们可以进入Eclipse的官方网站,点击Downloads,下载一个Eclipse的压缩包。目前最新的版本为3.2.2,但是3.2.2版本的多国语言包还没有出来,所以我们可以下载一个稍早一点的版本3.2.1Eclipse的安装和运行安装Eclipse的步骤非常简单,只需将下载的压缩包直接解压到你喜欢的路径即可。然后将多国语言包解压并将解压出来的plugins文件夹和features文件夹去覆盖eclipse文件夹下的同名文件夹即可。在启动Eclipse之前,需要首先安装好JDK,并设置好path环境变量。安装并设置好JDK后,我们再次启动Eclipse,进入欢迎界面之前首先要选择工作空间。Eclipse的缺省欢迎界面中有五个按钮,分别是“概述”、“新增内容”、“样本”、“教程”和“工作台”。我们可以点击位于界面右方的“工作台”按钮,进入工作台界面。Eclipse工作台窗口由多个窗格组成,窗格集合称为透视(perspective)。默认的透视图是Java透视图,此外还有CVS资源库研究透视图、Java类型层次结构透视图、Java浏览透视图和插件开发透视图等。我们还可以建立多个工作台窗口,并且能够定制和复位透视图。Java透视图中还包括多个视图,默认的有包资源管理器、层次结构、大纲、问题、Javadoc和声明,此外还有Ant、导航器、进度和错误日志等多个视图。Eclipse的插件体系结构Eclipse最有魅力的地方就在于它的插件体系结构。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。在Eclipse中实现的绝大部分功能是由相应的插件完成的,它附带了一个标准的插件集。Eclipse的多国语言包其实就是一个插件,甚至用来开发Java程序的JDT(JavaDevelopmentTools),也只不过是Eclipse系统中的一个普通插件而已。虽然大多数用户只是将Eclipse当作JavaIDE来使用,但Eclipse的目标不仅限于此,通过开发插件,它能扩展到任何语言的开发,甚至能成为绘图的工具Eclipse已经开始提供C语言开发的功能插件,例如CDT