欢迎来到天天文库
浏览记录
ID:43710113
大小:1022.40 KB
页数:146页
时间:2019-10-13
《本科《c程序设计》visual_c面向对象程序设计基础》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、第1章面向对象程序设计概述1.1综述面向对象的程序设计(ObjectOrientedProgramming,OOP)是70年代发展起来的一种新的程序设计方法,近年來越来越受到人们的重视,无论在软件工程领域还是在人工智能领域都得到广泛的应用。人们甚至认为面向对象的程序设计语言的出现,是计算机软件产业的一次革命。传统的程序设讣技术是面向过程的程序设讣方法,这种方法把数据和过程作为相互独立的实体,数据代表问题空间屮的客体,用于表达实际问题屮的信息,程序代码则用于处理这些数据。程序员在编写程序时,必须时刻考虑所要处理的数据格式(结构和类型),对于不同的数据格式即使要做同样的处理
2、,或者对于相同的数据格式但要做不同的处理,都必须编写不同的程序。显然,使用传统方法设计出来的程序,可重用的成分很少。当把数据和代码作为分离的实体时,总存在使用错误的数据调用正确的程序模块,或使用正确的数据调用错误的程序模块的危险。使数据和程序保持一致,是程序员的一个沉重负担。此外,在开发一个大型软件系统的过程中,如果负责设计数据结构的人中途改变了某个数据结构而又没有及时通知其他开发人员,则会发生许多不该发生的错误。传统的程序设计方法忽略了数据和程序间的内在联系。事实上,用计算机解决的问题都是现实世界中的问题,这些问题无非是由一些相互间存在一定联系的事物组成。通常把这些事
3、物称为对象(object),每个具体的对象都可以用下述两个特征来描述:描述事物静态属性所需要使用的数据结构,以及可以对这些数据进行的有限操作(表示事物的动态行为)。也就是说,把数据结构和对数据的操作放在一起构成一个整体,才能完整地反映实际问题。数据结构和对数据的操作实质上是相互依赖、不可分割的整体。面向对彖程序设计方法与传统的面向结构的方法有本质不同,这种方法的基本原理是,对问题领域进行自然的分解,按照人们习惯的思维方式建立问题领域的模型,模拟客观世界,从而设计出尽可能直接、自然地表现问题求解方法的软件。面向对象程序设计是70年代发展起来的一种新的程序设计方法,它给软件
4、行业带来一场革命,它是软件工程学小的结构化程序设计、模块化、数据抽彖、信息隐藏、知识表示、并行处理等各种概念的积累和发展。面向对象的程序设计方法更接近人的思维活动,可扩充性好,可重用性强,这使得软件更加模块化,维护更为容易,更适合于开发大型软件,同时减少了软件开发过程中的许多重复性劳动,促进了软件的工业化生产。最早的具有面向对象程序设计思想的语言是SIMULA,随后又出现了SMALLTALK等著名的面向对彖的程序设计语言。C++实际上是C语言的一个扩展,它在C语言屮加入了面向对彖的稈序设讣(OOP),是面向对彖程序设计语言的主流。C++的版本很多,在此我们以Visual
5、C++为主。1.2传统的结构化程序设计20世纪60年代提出了结构化程序设if(StructuredProgramming,SP)方法。所谓结构化程序设讣,是一种自上而下、逐步细化的模块化程序设计方法。当解决一个复杂问题时,首先将总的求解任务分解为若干子任务,然后可以为每个子任务设计一个子程序。若子程序任务仍较复杂,可以将子任务继续分解。完成不同任务的程序在程序代码编制上相互独立,而在数据的处理上又相互联系。对于解决一个简单问题的程序,WirthN提出一个公式:算法+数据结构二程序,即编制程序就是定义数据设计算法。定义数据就是选择合适的数据结构,设计算法就是根据所选择的数
6、据结构编写解决问题的过程。结构化程序设计屮数据和过程是分离的,过程是对数据的操作。结构化程序设计是一种血向过程程序设计(ProcedureOrientedProgramming,POP)方法,即一个程序是由多个可独立编程的过程模块组成,过程之间通过函数参数和全局变量进行相互联系。结构化程序设计按照工程的标准和严格的规范将系统分解为若干功能模块,系统是实现模块功能的函数或过程的集合。与以前的非结构化程序设计相比,结构化程序设计在调试、可读性和可维护性等方面都有了很大的改进。但是,以过程为中心构造系统并编写程序,每一次设计新的系统,除了一些接口简单的标准函数,大部分代码都必
7、须重新编写,不能实现代码的直接重用。其次,结构化程序设计将系统分解为若干功能模块,由于软、硬件技术的不断发展和用户需求的变化,按照功能划分设计的系统模块的功能要求容易发生变化,使得开发出来的模块的可维护性欠佳。并且,面向过程模式将数据和过程分离,若对某一数据结构做了修改,为了保证与数据的-•致性,所有处理数据的过程都必须重新修订,这样就增加了编程工作量,同时也家大了出错的概率。特别是随着问题规模的变大而使编写的程序代码程度急剧增大,大大降低了程序的可维护性。1.3面向对象程序设计(OOP)结构化程序设计从本质上说是面向“过程”或“操作”,
此文档下载收益归作者所有