《面向对象程序设计的基本思想》参考教案2.doc
PAGE1/NUMPAGES3
面向对象程序设计的基本思想
面向对象技术现在已经逐渐取代了传统的技术,成为当今计算机软件工程学中的主要开发技术,随着面向对象技术的不断发展,越来越多的软件开发人员加入到了它的阵营之中。面向对象技术之所以会为广大的软件开发人员青睐,是由于它作为一种先进的设计和构造软件的技术,使计算机以更符合人的思维方式去解决一系列的编程问题。使用面向对象技术编写的程序极大地提高了代码复用程度和可扩展性,使得编程效率也得到了极大的提高,同时减少了软件维护的代价。
面向对象技术发展的重大成果之一就是出现了统一建模语言(UML)。UML是面向对象技术领域内占主导地位的标准建模语言,它统一了过去相互独立的数十种面向对象的建模语言共同存在的局面,通过统一语义和符号表示,系统地对软件工程进行描述、构造,形成了一个统一的、公共的、具有广泛适用性的建模语言。
1.1面向对象思想的基本概念
面向对象和过去的软件开发技术完全不同,是一种全新的软件开发技术。面向对象的概念从问世到现在,它已经发展成为一种相对成熟的编程思想,并且逐步成为软件开发领域的主流技术。面向对象的程序设计(Object-OrientedProgramming,OOP)旨在创建软件重用代码,具备更好的模拟现实世界环境的能力,这使它被公认为是自上而下编程的最佳选择。它通过给程序中加入扩展语句,把函数“封装”进编程所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清晰、编写容易。说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言。
什么叫面向对象
面向对象技术是一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术。从程序设计方法上来讲,它是一种自下而上的程序设计方法,它不像面向过程程序设计那样一开始就需要使用一个主函数来概括出整个程序,面向对象程序设计往往从问题的一部分着手,一点一点地构建出整个程序。面向对象设计是以数据为中心,使用类作为表现数据的工具,类是划分程序的基本单位。而函数在面向对象设计中成了类的接口。以数据为中心而不是以功能为中心来描述系统,相对来讲,更能使程序具有稳定性。它将数据和对数据的操作封装到一起,作为一个整体进行处理,并且采用数据抽象和信息隐藏技术,最终将其抽象成一种新的数据类型——类
类与类之间的联系以及类的重用出现了类的继承、多态等特性。类的集成度越高,越适合大型应用程序的开发。另外,面向对象程序的控制流程运行时是由事件进行驱动的,而不再由预定的顺序进行执行。事件驱动程序的执行围绕消息的产生与处理,靠消息的循环机制来实现。更加重要的是,我们可以利用不断成熟的各种框架,比如.NET的.NETFramework等,在实际的编程过程中,使用这些框架能够迅速地将程序构建起来。面向对象的程序设计方法还能够使程序的结构清晰简单,能够大大提高代码的重用性,有效地减少程序的维护量,提高软件的开发效率。
在结构上,面向对象程序设计和结构化程序设计也有很大的不同。结构化程序设计首先应该确定的是程序的流程怎样走,函数间的调用关系怎样,也就是函数间的依赖关系是什么。一个主函数依赖于其子函数,这些子函数又依赖于更小的子函数,而在程序中,越小的函数处理的往往是细节的实现,这些具体的实现又常常变化。这样的结果,就使程序的核心逻辑依赖于外延的细节,程序中本来应该是比较稳定的核心逻辑,也因为依赖于易变化的部分,而变得不稳定起来,一个细节上的小小改动,也有可能在依赖关系上引发一系列变动。可以说这种依赖关系也是过程式设计不能很好处理变化的原因之一,而一个合理的依赖关系,应该是倒过来的,由细节的实现依赖于核心逻辑才对。而面向对象程序设计是由类的定义和类的使用两部分组成的,主程序中定义数个对象并规定它们之间消息传递的方式,程序中的一切操作都是通过面向对象的发送消息机制来实现的。对象接收到消息后,启动消息处理函数完成相应的操作。
这里以常见的学生管理系统为例,我们使用结构化程序设计方法的时候,首先在主函数中确定学生管理要做哪些事情,分别使用函数将这些事情表示出来,使用一个分支选择程序进行选择,然后再将这些函数进行细化实现,确定调用的流程等。而使用面向对象技术来实现学生管理系统,对于该系统中的学生,则先要定义学生的主要属性,比如说学号、院系等,要对学生做什么操作,比如说查询学生信息、修改学生信息等。并且把这些当成一个整体进行对待,形成一个类,即学生类。使用这个类,我们可以创建不同的学生实例,也就是创建许多具体的学生模型,每个学生拥有不同的学号,一些学生会在不同的院系。学生类中的数据和操作都是给应用程序共享的,我们可以在学生类的基础上派生出中文系学生类、计算机系学生类、金融系学生类等,这样就可以实现代码的重用。