第15卷第2期2000年10月内蒙古民族师院学报(自然科学版)Vol.15JournalofInnerMongoliaTeacher’sCollegefortheNationalitiesOct.2000软件开发的新方法———面向对象程序设计白青海1,郑瑛2,曹杏华3(11内蒙古民族师院数学系,内蒙古通辽028043;21内蒙古民族师院学报编辑部,内蒙古通辽02804331通辽教育学院,内蒙古通辽028000)摘要:面向对象程序设计是近年来非常热门的课题。本文讨论了面向对象程序设计的方法、特点和建模。关键词:对象;面向对象程序设计:TP311111文献标识码:A:1001—7259(2000)02-0125-031引言虽然传统的生命周期法曾给软件产业带来了巨大的进步,但这种方法仍存在着比较明显的缺点。比如,软件生产率提高幅度缓慢,软件复用程度低,软件维护困难,软件的稳定性和可扩充性不能适应用户需求等。为提高软件系统的稳定性,可修改性和可复用性,产生了软件开发的新方法,即面向对象程序设计(Object-OrientedProgramming,简称OOP)。2面向对象程序设计方法对象(object)是面向对象程序设计方法中使用的最基本的概念。面向对象方法学中的对象是由描述该对象属性的数据以及可以对这些数据施加所有操作封装在一起构成的统一体如,一个窗口,一座学校,存款,借款等都可以作为一个对象。面向对象方法学尽可能接近人类认识世界解决问题的问题空间与实现解法的解空间在结构上尽可能一致。从本质上说,用计算机解决客观世界的问题,是借助于某种程序设计语言的规定,对计算机中的实体施加某种处理,并用处理结果去映射解,计算机中的实体称为解空间对象,解空间对象取决于所使用的程序设计语言。汇编语言提供的对象是各种预定义类型的变量、数组、记录和文件。若提供了某种解空间对象,就规定了允许对该类对象施加的操作。例如,对整型变量,可以进行加、减、乘整除(div)操作,但不能做除(/)操作。软件系统本质上是信息处理系统。面向对象方法是一种以数据或信息为主线,把数据和处理相结合的方法。对象与传统的数据有本质区别,它不是被动地等待外界对它施加操作,它是进行处理的主体,必须发消息,请求对象主动地执行它的某些操作,处理它的私有数据,而不能从外界直接对它的私有数据进行操作。面向对象方法学不是把程序看作是工作在数据上的一系列过程或函数的集合,而是把程序看作是相互协作而又彼此独立的对象的集合。每个对象就像一个微程序,有自己的数据、操作、功能、目的。这样使得解空间对象都可以直接模拟问题空间的对象,解空间与问题空间的结构十分接近,这样的程序易于理解和维护。收稿日期:1999—04—26,象和消息(message)传递分别是表现事物及事物间相互联系的概念。组合了状态和行为,对象的行为可通过方法(method)定义。对象被划分成类,所有类都有同样的结构和行为,通过给对象发送消息,就触发那个行为。一个类可以继承其他类的变量和由方法定义的行为(在C++中把方法称为成员函数)。最后,用面向对象观点建立问题空间的模型,开发出尽可能自然地表现求解方法的软件。面向对象程序设计实际上是围绕组织问题空间的事物进行程序设计。所关心的是对象及其相互间的联系,整个程序系统只由对象组成,对象间的联系只通过消息传递进行;系统运行就是多个对象经过消息传递相互联系,共同合作,完成某一处理活动。面向对象方法学就是既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息,实现彼此间通信。3面向对象程序设计特点封装性:把一个对象同操作对象的函数组合在一起。封装性是借助于一种新的结构和数据类型机制“类”来实现的。一切局部于该对象的私有信息,都被封装在该对象类的定义中,在外界是看不见的,更不能直接使用。继承性(inheritance):建立一个新的派生类(derivedclass),它从一个或多个先前定义的基类(baseclass)中继承成员函数和数据,且可能重新定义或加进新的数据和函数。在面向对象的软件技术中,继承是子类自动地共享基类中定义的数据和方法的机制。继承具有传递性,一个类实际上继承了它所在的类等级中在它上层的全部基类的所有描述;继承性使得相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余信息;继承性使得用户在开发新的应用系统时不必完全从零开始,可继承原有的相似...