清华大学java电子教案第1章.ppt_第1页
清华大学java电子教案第1章.ppt_第2页
清华大学java电子教案第1章.ppt_第3页
清华大学java电子教案第1章.ppt_第4页
清华大学java电子教案第1章.ppt_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java语言与面向对象 程序设计,清华大学计算机基础教育课程系列教材 印旻 编著,总 目 录,第1章 面向对象软件开发概述 第2章 Java概述 第3章 Java语言基础 第4章 抽象、封装与类 第5章 继承与多态 第6章 工具类与算法 第7章 图形用户界面的设计与实现 第8章 Java高级编程,第1章 面向对象软件开发概述,1.1 面向对象问题求解的提出 1.2 面向对象问题求解概述 1.3 对象、类与实体 1.4 对象的属性与相互关系 1.5 面向对象的软件开发过程 1.6 面向对象程序设计方法的优点 1.7 小结 习题,面向对象的软件开发和相应的面向对象的问题求解是当今计算机技术发展的重要成果和趋势之一。 本章将集中介绍面向对象软件开发和面向对象程序设计中的基本概念和基本方法,使读者对面向对象软件开发方法的体系、原则、基本思想和特点有一定的了解。,1.1 面向对象问题求解的提出 早期计算机中运行的程序大都是为特定的硬件系统专门设计的,称为面向机器的程序。这类程序的运行速度和效率都很高,但是可读性和可移植性很差,随着软件开发规模的扩大,这类面向机器的程序逐渐被以FORTRAN、C等为代表的面向过程的程序所取代。 面向过程的程序遵循面向过程的问题求解方法。其中心思想是用计算机能够理解的逻辑来描述和表达待解决的问题及其具体的解决过程。数据结构、算法是面向过程问题求解的核心组成。其中数据结构利用计算机的离散逻辑来量化表达需要解决的问题,而算法则研究如何快捷、高效地组织解决问题的具体过程。,面向过程的问题求解可以精确、完备地描述具体的求解过程(这里的过程通常是指操作),但却不足以把一个包含了多个相互关联的过程的复杂系统表述清楚,而面向对象的问题求解则可以胜任这件工作。面向对象问题求解关心的不仅仅是孤立的单个过程,而是孕育所有这些过程的母体系统,它能够使计算机逻辑来模拟描述系统本身,包括系统的组成,系统的各种可能状态,以及系统中可能产生的各种过程与过程引起的系统状态切换。,面向对象技术代表了一种全新的程序设计思路和观察、表述、处理问题的方法,与传统的面向过程的开发方法不同,面向对象的程序设计和问题求解力求符合人们日常自然的思维习惯,降低、分解问题的难度和复杂性,提高整个求解过程的可控制性、可监测性和可维护性,从而达到以较小的代价和较高的效率获得较满意效果的目的。,最早的面向对象的软件是1966年推出的Simula I,它首次提出模拟人类的思维方法,把数据和相关的操作集成在一起的思想。但是由于当时硬件条件的局限和方法本身不够成熟,这种技术没有得到推广和使用。1980年提出的Smalltalk80语言已经是一种比较成熟、有效的面向对象的工具了,利用Smalltalk80也确实实现了一些面向对象的应用,但是这个语言更重要的作用是提出了一种新的思想观念和解决问题的新思路和新方法,它向人们展示了面向对象这个虽然稚嫩,但却充满希望的发展方向。其后,先后产生了Lisp、Clascal、Object Pascal、C+等多种面向对象的语言,这中间最有影响,也是对面向对象技术的普及推动最大的当属C+。,C+语言在兼容原有最流行的C语言的基础之上,加入了面向对象的有关内容和规则。由于它的很多语法规则与C语言相近,所以很容易为广大的C程序员所接受;同时C+所具有的面向对象功能简化了应用软件的开发、设计和维护,为开发大型软件提供了很大的方便。C+的广泛推广和成功应用证明了新兴的面向对象技术的实力和前景,C+也正在取代C而成为主流编程语言。 Java是90年代新出现的面向对象的编程语言。相对于C+,Java去除了其中为了兼容C语言而保留的非面向对象的内容,使程序更加严谨、可靠、易懂。尤其是Java所特有的“一次编写、多次使用”的跨平台优点,使得它特别适合在网络应用开发中使用,成为面向对象开发工具中极具潜力的一员。,面向对象的程序设计方法的出现和广泛应用是计算机软件技术发展中的一个重大变革和飞跃。相对于之前的程序设计方法,面向对象技术能够更好地适应当今软件开发在规模、复杂性、可靠性和质量、效率上的种种需求,因而被越来越多地推广和使用,其方法本身也在这诸多实践的检验和磨练中日趋成熟、标准化和体系化,逐渐成为目前公认的主流程序设计方法。,1.2 面向对象问题求解概述 不同于面向过程的程序设计中以具体的解题过程为研究和实现的主体,面向对象的程序设计是以需解决的问题中所涉及到的各种对象为主要矛盾。,在面向对象的方法学中,“对象”是现实世界的实体或概念在计算机逻辑中的抽象表示。具体地,对象是具有唯一对象名和固定对外接口的一组属性和操作的集合,用来模拟组成或影响现实世界问题的一个或一组因素。其中对象名是区别于其他对象的标志;对外接口是对象在约定好的运行框架和消息传递机制中与外界通信的通道;对象的属性表示了它所处于的状态;而对象的操作则用来改变对象的状态达到特定的功能。对象的最主要特点是以数据为中心,它是一个集成了数据和其上操作的独立、自恰的逻辑单位。,面向对象的问题求解就是力图从实际问题中抽象出这些封装了数据和操作的对象,通过定义属性和操作来表述它们的特征和功能,通过定义接口来描述它们的地位及与其他对象的关系,最终形成一个广泛联系的可理解、可扩充、可维护、更接近于问题本来面目的动态对象模型系统。 面向对象的程序设计将在面向对象的问题求解所形成的对象模型基础之上,选择一种面向对象的高级语言来具体实现这个模型。相对于传统的面向过程的程序设计方法,面向对象的程序设计具有如下的优点:,(1) 对象的数据封装特性彻底消除了传统结构方法中数据与操作分离所带来的种种问题,提高了程序的可复用性和可维护性,降低了程序员保持数据与操作相容的负担。 (2) 对象的数据封装特性还可以把对象的私有数据和公共数据分离开,保护了私有数据,减少了可能的模块间干扰,达到降低程序复杂性、提高可控性的目的。,(3) 对象作为独立的整体具有良好的自恰性,即它可以通过自身定义的操作来管理自己。一个对象的操作可以完成两类功能,一是修改自身的状态,二是向外界发布消息。当一个对象欲影响其他的对象时,它需要调用其他对象自身的方法,而不是直接去改变那个对象。对象的这种自恰性能使得所有修改对象的操作都以对象自身的一部分的形式存在于对象整体之中,维护了对象的完整性,有利于对象在不同环境下的复用、扩充和维护。,(4) 在具有自恰性的同时,对象通过一定的接口和相应的消息机制与外界相联系。这个特性与对象的封装性结合在一起,较好地实现了信息的隐藏。即对象成为一只使用方便的“黑匣子”,其中隐藏了私有数据和细节内容。使用对象时只需要了解其接口提供的功能操作即可,而不必了解对象内部的数据描述和具体的功能实现。 (5) 继承是面向对象方法中除封装外的另一个重要特性,通过继承可以很方便地实现应用的扩展和已有代码的重复使用,在保证质量的前提下提高了开发效率,使得面向对象的开发方法与软件工程的新兴方法快速原型法很好地结合在一起。,综上所述,面向对象程序设计是将数据及数据的操作封装在一起,成为一个不可分割的整体,同时将具有相同特征的对象抽象成为一种新的数据类型类。通过对象间的消息传递使整个系统运转。通过对象类的继承提供代码重用的有效途径。 在面向对象程序设计方法中,其程序结构是一个类的集合和各类之间以继承关系联系起来的结构,有一个主程序,在主程序中定义各对象并规定它们之间传递消息的规律。从程序执行这一角度来看,可以归结为各对象和它们之间的消息通信。面向对象程序设计最主要的特征是各对象之间的消息传递和各类之间的继承。,实际上,面向对象的程序设计只是面向对象方法学的一个组成部分。完整地看,面向对象的问题求解还应该包括面向对象的分析和面向对象的设计。但是由于面向对象的方法学尚未完全成熟及得到广泛意义上的公认,所以在本书里将把重点放在它可操作性较强的方面,即结合Java语言主要介绍面向对象的程序设计方法。,1.3 对象、类与实体 不同于面向过程的程序设计中以具体的解题过程为研究和实现的主体鵞,面向对象的程序设计是以需解决的问题中所涉及到的各种对象为主要矛盾。 更确切地,面向对象技术中的对象就是现实世界中某个具体的物理实体在计算机逻辑中的映射和体现。,类也是面向对象技术中一个非常重要的概念。简单地说,类是同种对象的集合与抽象。为了处理问题的方便,在面向对象的程序设计中定义了类的概念来表述同种对象的公共属性和特点。从这个意义上来说,类是一种抽象的数据类型,它是所有具有一定共性的对象的抽象,而属于类的某一个对象则被称为是类的一个实例,是类的一次实例化的结果。,图1.1 对象、实体与类,图1.1表示了类、对象、实体的相互关系和面向对象的问题求解的思维方式。在用面向对象的软件方法解决现实世界的问题时,首先将物理存在的实体抽象成概念世界的抽象数据类型,这个抽象数据类型里面包括了实体中与需要解决的问题相关的数据和属性;然后再用面向对象的工具,如Java语言,将这个抽象数据类型用计算机逻辑表达出来,即构造计算机能够理解和处理的类;最后将类实例化就得到了现实世界实体的面向对象的映射对象,在程序中对对象进行操作,就可以模拟现实世界中的实体上的问题并解决之。,实质上,面向对象技术的一个关键的设计思想就是要让计算机逻辑来模拟现实世界的物理存在,即让计算机世界向现实世界靠拢。这一点与传统的程序设计中把现实世界的问题抽象成计算机可以理解和处理的数据结构的思路,即使现实世界向计算机世界靠拢的思路是完全不同的。面向对象技术提出的这种新的解决问题的思路,使得我们可以用更接近于人类自然思维模式和更接近于现实问题本来面目的方法来设计解题模型。这样,无论是当时的设计实现本身,还是日后的维护、修改和扩充,都可以比较顺利、容易地在已有工作的基础之上完成,避免了用面向过程方法实现时需要面对的种种困难。,1.4 对象的属性与相互关系 1.4.1 对象的属性 状态和行为是对象的主要属性。 对象的状态又称为对象的静态属性,主要指对象内部所包含的各种信息,也就是变量。每个对象个体都具有自己专有的内部变量,这些变量的值标明了对象所处的状态。当对象经过某种操作和行为而发生状态改变时,具体地就体现为它的属性变量的内容的改变。通过检查对象属性变量的内容,就可以了解这个对象当前所处于的状态。,从图1.2中可以看出,对象的方法一方面把对象的内部变量包裹、封装、保护起来,使得只有对象自己的方法才能操作这些内部变量;另一方面,对象的方法还是对象与外部环境和其他对象交互、通信的接口,对象的环境和其他对象可以通过这个接口来调用对象的方法,操纵对象的行为和改变对象的状态。,图1.2 对象的属性,在面向对象的方法学中,“对象”是现实世界的实体或概念在计算机逻辑中的抽象表示。具体地,对象是具有唯一对象名和固定对外接口的一组属性和操作的集合,是用来模拟组成或影响现实世界问题的一个或一组因素。其中对象名是区别于其他对象的标志;对外接口是对象在约定好的运行框架和消息传递机制中与外界通信的通道;对象的静态属性表示了它所处的状态;而对象的操作则用来改变对象的状态以达到特定的功能。对象最主要的特点是以数据为中心,它是一个集成了数据和其上操作的独立、自恰的逻辑单位。,面向对象的问题求解就是力图从实际问题中抽象出这些封装了数据和操作的对象,通过定义属性变量和操作来表述它们的特征和功能,通过定义接口来描述它们的地位及与其他对象的关系,最终形成一个广泛联系的可理解、可扩充、可维护、更接近于问题本来面目的动态对象模型系统。,1.4.2 对象的关系 一个复杂的系统必然包括多个对象,这些对象间可能存在的关系有三种:包含、继承和关联。 1. 包含 当对象A是对象B的属性时,称对象B包含对象A。 当一个对象包含另一个对象时,它将在自己的内存空间中为这个被包含对象留出专门的空间,即被包含对象将被保存在包含它的对象内部。,2. 继承 当对象A是对象B的特例时,称对象A继承了对象B。例如,黑白电视机是电视机的一种特例,彩色电视机是电视机的另一种特例。如果分别为黑白电视机和彩色电视机抽象出黑白电视机对象和彩色电视机对象,则这两种对象与电视机对象之间都是继承的关系。 实际上,这里所说的对象间的继承关系就是后面要详细介绍的类间的继承关系。作为特例的类称为子类,而子类所继承的类称为父类。父类是子类公共关系的集合,子类将在父类定义的公共属性的基础上,根据自己的特殊性特别定义自己的属性。,3. 关联 当对象A的引用是对象B的属性时,称对象A和对象B之间是关联关系。所谓对象的引用是指对象的名称、地址、句柄等可以获取或操纵该对象的途径。相对于对象本身,对象的引用所占用的内存空间要少得多,它只是找到对象的一条线索。通过它,程序可以找到真正的对象,并访问这个对象的数据,调用这个对象的方法。,例如,每台电视机都对应一个生产厂商,如果把生产厂商抽象成厂商对象,则电视机对象应该记录自己的生产厂商是谁,此时电视机对象和厂商对象之间就是关联的关系。 关联与包含是两种不同的关系。厂商并不是电视机的组成部分,所以电视机对象里不需要也不可能保存整个厂商对象,而只需要保存一个厂商对象的引用,例如厂商的名称。这样,当需要厂商对象时,如当需要从厂商那里购买一个零件时,只需要根据电视机对象中保存的厂商的名字就可以方便地找到这个厂商对象。,1.5 面向对象的软件开发过程 面向对象的软件开发过程可以大体划分为面向对象的分析(object oriented analysis,OOA)、面向对象的设计(object oriented design,OOD)、面向对象的实现(object oriented programming,OOP)三个阶段。,1.5.1 面向对象的分析 面向对象的分析的主要作用是明确用户的需求,并用标准化的面向对象的模型规范地表述这一需求,最后将形成面向对象的分析模型,即OOA模型。分析阶段的工作应该由用户和开发人员共同协作完成。 面向对象的分析首先应该明确用户的需求,包括对用户需求的全面理解和分析、筛选,明确所要开发的软件系统的职责界限,并进行各种可行性研究和制订资源、进度预算等;然后再将这些需求以标准化模型的形式规范地表述出来,即将用户和开发人员头脑中形成的需求以准确的文字、图表等形式表述出来,形成双方都认可的文件。,在传统的面向过程的开发方法中,这个步骤较多是借助于结构化分析方法中的数据流图和数据字典等工具来完成的,这种分析方法的优点是可以帮助开发人员了解和掌握系统中数据流的运动情况,对软件系统的各种工作状态和这些状态之间的切换有清晰的认识和控制,为后期工作的顺利完成铺平了道路。但是这种分析方法的缺点是过于烦琐,不够灵活,一旦因某种原因需要改变需求时,很多原有的工作不能得到继承,从而造成各方面资源的浪费。,面向对象的软件开发过程所采用的需求分析方法虽然不止一种,但是作用却是相同的:都是要抽取存在于用户需求中的各对象实体,分析、明确这些对象实体的静态数据属性和动态操作属性以及它们之间的相互关系;更重要地,要能够反映出由多个对象组成的系统的整体功能和状态,包括各种状态间的变迁以及对象在这些变迁中的作用、在整个系统中的位置等。需求模型化方法是面向对象的分析中常用的方法。这种方法通过对需要解决的实际问题建立模型来抽取、描述对象实体,最后形成OOA模型,将用户的需求准确地表达出来。OOA模型有很多种设计和表达方法,这里将介绍使用较为广泛的Coad & Yourdon的OOA模型。,这种OOA模型包含5个层次,每个层次描述需求模型的一个方面。 1. 对象类层 这个层次将捕捉要开发的应用软件所对应的各个现实世界的实体,并从中抽象出对象和类。这里需要注意,并不是每一个现实世界的实体都会在模型中对应一个对象,这是因为模型将只为需要解决的问题服务,对于问题领域之外的实体将不予涉及;另一方面,也不是任何一个对象类层次中的类都对应着现实世界中的一个或多个实体。例如后面章节中将要介绍的抽象类,它仅仅作为其所有子类的公共属性的集合存在,并不对应任何实际的实体。,2. 静态属性层 静态属性层将为对象类层中抽取出来的各个类和对象设计静态属性(状态)和它们之间的约束关系(称为实例连接)。静态属性是类或对象所包含的各种状态和信息,实例连接则体现了对象之间因特定的事物规则和限定条件而存在的约束关系。例如电视机对象中的厂商属性所指向的必须是确实存在的生产厂商对象。,3. 服务层 服务层定义了对象和类的动态属性以及对象之间的消息通信。对象和类的动态属性就是它们的行为或方法(又称为“服务”),它规定了对象和类的作用和功能,当对象在执行这些功能的时候,它们之间将引发消息通信。 4. 结构层 结构层将定义系统中所有对象和类之间的层次结构关系。如前所述,对象间有包含、继承和关联三种关系,其中包含和继承属于结构层需要表达的层次结构关系。继承将在对象间建立“一般特殊”的结构关系;包含将在对象间建立 “整体部分”的结构关系。,5. 主题层 当面临的系统非常复杂、庞大时,将它拆解为若干个相对独立的子系统就变得非常必要了。主题层将定义若干个主题,把有关的对象分别划归不同的主题,每个主题成为一个子系统。 设计完上述5个层次,就得到了完整的OOA模型。需要指出的是,OOA模型的严格定义和具体抽取方法都比较复杂,这里就不详细介绍了,感兴趣的读者可以参考相关的资料。,1.5.2 面向对象的设计 如果说分析阶段应该明确所要开发的软件系统“干什么”,那么设计阶段将明确这个软件系统“怎么做”。面向对象的设计将对OOA模型加以扩展并得到面向对象的设计阶段的最终结果:OOD模型。,面向对象的设计将在OOA模型的基础上引入界面管理、任务管理和数据管理三部分的内容,进一步扩充OOA模型。其中界面管理负责整个系统的人机界面的设计;任务管理负责处理并行操作之类的系统资源管理功能的工作;数据管理则负责设计系统与数据库的接口。这三部分再加上OOA模型代表的“问题逻辑”部分,就构成了最初的OOD模型。将OOD模型划分为上述问题逻辑、界面管理、任务管理和数据管理四个部分,其优点是实现了技术实现上的透明性,即一个部分的具体技术细节与实现方法相对于所有其他部分是不可见的,从而使系统的可重用性大大提高。,面向对象的设计还需要对最初的OOD模型做进一步的细化分析、设计和验证。在“问题逻辑”部分,细化设计包括对类静态数据属性的确定,对类方法(即操作)的参数、返回值、功能和功能的实现的明确规定等;细化验证主要指对各对象类公式间的相容性和一致性的验证,对各个类、类内成员的访问权限的严格合理性的验证,也包括验证对象类的功能是否符合用户的需求。,在使用详细设计明确各对象类的功能和组成时,一个很重要的工作是充分利用已存在的、可获得的对象类或部件。这些可利用的对象类或部件可能是以前开发工作的结果,也可能是从网络上免费下载或从有关软件厂商购买到的产品,还可能是由同一开发小组的其他开发人员设计实现供大家共享的模块。其优点是可以大大提高开发效率和可靠性,降低开发成本。现成的对象类或部件使用得越多,这个优势就越明显。如果暂时没有可以引用的现成的对象类或部件,在详细设计中还可以分析所要开发的软件系统中哪些类或哪些功能是可以重用的,把这些可重用的部件交给专人优先开发。在比较大型的开发项目中,可以设置专人专门负责管理所有的可重用资源,将这些资源组织成类库或其他的可重用结构。,1.5.3 面向对象的实现 面向对象的实现就是具体的编码阶段,其主要任务包括: (1) 选择一种合适的面向对象的编程语言,如C+、Object Pascal、Java等。 (2) 用选定的语言编码实现详细设计步骤所得的公式、图表、说明和规则等对软件系统各对象类的详尽描述。 (3) 将编写好的各个类代码模块根据类的相互关系集成。,(4) 利用开发人员提供的测试样例和用户提供的测试样例分别检验编码完成的各个模块和整个软件系统。在面向对象的开发过程中,测试工作可以随着整个实现阶段编码工作的深入同步完成。因为每个模块(类实现)完成之后可以立即加入到系统框架中,模块的修改和细化也可以在框架内部完成。,实现阶段完成后,最终可运行的应用软件系统就全部完成了。实际上,面向对象的软件开发还包括面向对象的测试和维护。在面向对象的软件开发中,由于采用了对象这个灵活、可扩展的概念,维护阶段的工作将被大大简化。 综上所述,面向对象的软件开发可概括为如下的过程:分析用户需求,从问题中抽取对象模型;将模型细化,设计类,包括类的属性和类间相互关系,同时考察是否有可以直接引用的已有类或部件;选定一种面向对象的编程语言,具体编码实现上一阶段类的设计,并在开发过程中引入测试,完善整个解决方案。,由于对象的概念能够以更接近实际问题的原貌和实质的方式来表述和处理这些问题,所以面向对象的软件开发方法比以往面向过程的方法有更好的灵活性、可重用性和可扩展性,使得上述“分析设计实现”的开发过程也更加高效、快捷。即使出现因前期工作不彻底、用户需求改动等需要反馈并修改前面步骤的情况,也能够在以前工作的基础之上从容地完成,而不会陷入传统方法中不得不推翻原有设计,重新考虑数据结构和程序结构的尴尬境地。,1.6 面向对象程序设计方法的优点 与传统的方法相比,面向对象的问题求解具有更好的可重用性、可扩展性和可管理性。本节将简要介绍使用面向对象的程序设计方法的优点和这种方法的适用场合。,1.6.1 可重用性 可重用性是面向对象软件开发的一个核心思路,面向对象程序设计的抽象、封装、继承、多态的四大特点都无一例外、或多或少地围绕着可重用性这个核心并为之服务。我们知道,应用软件是由模块组成的。可重用性就是指一个软件项目中所开发的模块,能够不仅限于在这个项目中使用,而且可以重复地使用在其他项目中,从而在多个不同的系统中发挥作用。,采用可重用模块来构建程序,其优点是显而易见的。首先,它提高了开发效率,缩短了开发周期,降低了开发成本。在项目开发初期让专人开发一些公用的模块供大家利用就是要发挥这种优势。其次,由于采用了已经被证明为正确、有效的模块,程序的质量能够得到保证,维护工作量也相应减少;最后,采用可重用模块来构建程序,能提高程序的标准化程度,符合现代大规模软件开发的需求。,对于可重用的模块的要求:首先,可重用模块必须是结构完整、逻辑严谨、功能明确的独立软件结构;其次,可重用模块必须具有良好的可移植性,可以使用在各种不同的软硬件环境和不同的程序框架里;最后,可重用模块应该具有与外界交互、通信的功能,它应该可以与它所工作的环境交换信息,接受命令,提供结果,它还应该能与其他的可重用模块协同工作。这样的可重用模块,在面向对象的程序设计中,就是类和对象。严格地说,是类定义了可重用模块的模板,而对象则是由这一模板制造出来的可以在各种场合、环境中重复利用的模块。,面向对象程序设计具有抽象、封装、继承和多态四大特点。其中抽象的特点使得类能够抓住事物的实质特征,因而具有普遍性,可以使用在不同的问题中;封装的特点使得类能够建立起严格的内部结构,保护好内部数据,减少外界的干扰和影响,以保证类保持自身的独立性,可工作在不同环境中;继承的特点使得一个类可以借鉴、利用已经存在的类和已经完成的工作,而不必一切从头开始,这本身就是一种可重用性的体现;至于多态性,如前所述,它可以提高程序的抽象程度,使得一个类在使用其他类的功能、操作时,不必了解这个类内部的细节情况,而只需明确它所提供的外部接口即可,这种机制为类模块的重复使用和类间的相互调用、合作提供了有利条件。,可见,面向对象技术的四个主要特点和面向对象技术以对象为核心的内涵实质,保证了它的类和对象成为软件开发中十分重要的可重用的模块,在各种开发工作中,不断地发挥着作用。 正是由于面向对象软件开发具有这种良好的可重用性,它才能适应现代应用软件开发规模扩大、复杂性增加和标准化程度日益提高的要求,逐渐成为人们承认、依赖和喜爱的主流开发技术。在使用面向对象技术开发应用软件时,一方面要充分利用已有的类和对象减小工作强度,另一方面尽量使开发出来的类和对象具有较好的可重用性。,1.6.2 可扩展性 可扩展性是对现代应用软件提出的又一个重要要求,即要求应用软件能够很方便、容易地进行扩充和修改,这种扩充和修改的范围不但涉及到软件的内容,也涉及到软件的形式和工作机制。 使用面向对象技术开发的应用程序,具有较好的可扩展性。面向对象技术的可扩展性,首先体现在它特别适合于在快速原型的软件开发方法中使用。快速原型法是研究软件生命周期的研究人员提出的一种开发方法,相对于传统的瀑布式的开发方法,它在某些程度上来说更加灵活和实用。,快速原型法的开发过程是这样的(参看图1.3):首先在了解了用户的需求之后,开发人员利用开发工具先做出一个系统的雏形,称为原型,这个原型尽管粗糙,但却应该是完整的、可工作的;开发人员带着这个原型征求用户的意见,再根据用户的改进意见在第一个原型的基础上修改和进一步开发,形成第二个原型;再带着第二个原型去征求用户的意见如此循环往复,不断地在已有工作的基础上修改、细化、完善,直到把最初粗陋的雏形精雕细琢成最终的功能完整、结构严谨的应用系统。,图 1.3 快速原型法的开发过程,用面向对象的程序设计方法来实现快速原型这种先搭框架,再填入内容的开发思

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论