欢迎来到天天文库
浏览记录
ID:50783890
大小:51.00 KB
页数:9页
时间:2020-03-14
《OOP技术:面向对象技术概述.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、此文档收集于网络,如有侵权,请联系网站删除OOP技术:面向对象技术概述本章综述面对各种亟待解决的问题,人们都要有解决的步骤和方法。如何把这些步骤和方法准确无误地告诉给计算机,并且让计算机帮助人们来解决问题,这是程序设计的任务。人与计算机之间通过计算机程序设计语言进行交互。计算机程序设计语言经历了侧重计算机理解逐步过渡到面向人们理解的发展过程,Java语言是一种成熟的、面向对象的、更符合人们思考习惯的计算机编程语言。本章从面向对象技术的发展历史入手,引导读者分析客观世界的问题域中的对象,从而理解面向对象程序设计的基本思想和基本概念,理解面向对象的程序设计与结构化程序设计的不同,了解常用面向
2、对象编程语言以及通用建模语言(UML)描述。本章的重点内容包括:·面向对象的基本概念;·面向对象技术的基本特征;·面向对象程序设计方法;·面向对象的UML描述。1.1面向对象技术的发展面向对象技术源于面向对象的编程语言(objectorientedprogramminglanguage,OOPL)。从20世纪60年代提出面向对象的概念到现在,它已发展成为一种比较成熟的编程思想,并且逐步成为目前软件开发领域的主流技术。面向对象并非是一个新的概念,寻其根源可以追溯到20世纪60年代的挪威,当时挪威计算中心的KristenNygaard和Ole-JohanDahl开发了一种称作Simula67
3、的仿真语言,该语言中引入了类的概念和继承机制,后来一些著名的面向对象编程语言都受到Simula的启发,如Smalltalk、C++、Eiffel。在20世纪70年代中期,AlanKay在施乐公司设计开发了Smalltalk语言,它具备了面向对象语言的继承和封装的主要特征,使面向对象程序设计方法趋于完善,掀起了面向对象研究的高潮。该语言的每个元素都被作为一个对象来实现。Smalltalk的程序设计环境及其相关的各方面都是面向对象的。即使今天,Smalltalk仍被认为是最纯的面向对象语言。Simula67和Smalltalk的开发为今天的面向对象研究开发工作奠定了基础。从20世纪80年代中
4、期到90年代,大批比较实用的面向对象编程语言涌现出来,如C++、Objective-C、ObjectPascal等。面向对象编程语言的繁荣是面向对象技术走向实用的重要标志,也是面向对象技术在计算机学术界、产业界和教育界日益受到重视的结果。在C++语言十分热门的时候,人们开始了对面向对象分析(objectorientedana此文档仅供学习与交流此文档收集于网络,如有侵权,请联系网站删除lysis,OOA)的研究,进而延伸到面向对象设计(objectorienteddesign,OOD)。特别是20世纪90年代以后,许多专家都在尝试用不同的方法进行面向对象的分析与设计,在这段时期,面向对象
5、的分析和设计技术逐渐走向实用,最终形成了从分析、设计到编程、测试与维护一整套的软件工程体系。当前,面向对象的概念已经渗透到编程语言、用户接口、人工智能和数据库等方面。1.2面向对象方法与结构化方法的比较为了更好地理解面向对象方法与结构化方法的不同,下面通过对一个实例的分析来认识这个问题。1.2.1现实问题分析【例1-1】某校需要设计图书管理系统,要求该系统具有借阅、归还、预订、查询等基本功能,其功能要求如下:(1)借阅:图书管理员输入读者借书证号码,系统首先检查借书证是否有效,若有效,则检查该读者所借图书或杂志是否超过10本,若已达到10本,则拒借;若未达到10本,则办理借书手续,修改图
6、书库存目录并将读者借书情况保存到借书文件。(2)归还:图书管理员通过系统从借书文件中读出与读者有关的记录,查阅所借日期,如超期(3个月)作罚款处理。否则,修改相应图书库存目录与借书文件。(3)预定:借书者可以预定目前借不到的书或杂志,一旦预定的书被其他人返还,就通知预定者。(4)查询:通过借书文件、图书库存目录文件查询读者情况﹑图书借阅及库存情况,打印统计表。分析:按照结构化方法的思路,采用“自顶向下、逐步求精”的方法,可以把问题描述中的系统分解为一系列的模块,如图1-1所示。结构化方法强调功能抽象与模块化,因而结构化方法把问题看作一系列处理的过程,也就是以模块(即过程)为中心的开发方法
7、。图1-1“图书管理系统”结构化方法的功能图然后对每个模块再按相同的方法进行分解,例如还书处理模块可进一步分解为下面的子模块,如图1-2所示。借书处理模块也可以进一步分解为相应子模块,如图1-3所示。图1-2“还书处理”模块图1-3“借书处理”模块按照面向对象方法来分析本系统则不是从功能入手,而是从对象入手。待解决的问题所涉及的业务范围称为该软件的问题域(problemdomain)。面向对象方法从问题域中的事物出发,围绕问题域中的
此文档下载收益归作者所有