浅谈面向对象的技术
                    -《面向对象系统的分析与设计》学习报告
            班级:(山东)北邮2012级软工硕士
              学号:2012127111
              姓名:蒋达民
    一、面向对象的基本概念
  近年来,面向对象的思想越来越受到人们的欢迎和重视。面向对象的思想提倡运用人类的思维方式,从现实世界中存在的事物出发来构造软件。它建立在“对象”概念的基础上,以对象为中心,以类和继承为构造机制,来设计和构造相应的软件系统。相对于传统的软件工程思想而言,面向对象淡化了计算机的观点,以现实世界中的模型作为构造软件系统的依据。面向对象的基本概念包括对象、类、封装、继承和多态。
1. 对象。对象可以是客观世界中存在的事物,也可以是概念化的实体,它由一组属性和操作组成。属性是用来描述对象静态特征的数据项,是对客观世界实体所具有性质的抽象。操作是用来描述对象动态特征。比如,把人当成一个对象,那么他的属性就有身高、体重、姓名和年龄等静态特征,他的操作就包括工作、学习、吃饭和运动等;把汽车当成一个对象,那么它的属性就有品牌、颜、价格和寿命等,它的操作就包括加速、减速和刹车等。
  2. 类。类是对对象的抽象,是对具有相同属性和相同操作的一组相似对象的定义。通常情况下,很多对象都有相似的特征。比如,对于两个教师,他们虽然可能身高、体重、性别、年龄和籍贯等特征不同,但是职业却是相同的;对于两把椅子,它们可能颜、形状、价格和位置等特征不同,但是作用却是相同的。在这种情况下,我们就可以忽略事物的非本质特征,只注意那些与当前目标相关的本质特征,从中出事物的共性,把本质特征相同的事物划分为一类,即将多个对象抽象为类。
  3. 封装。封装是指把对象的属性和操作结合在一起,组成一个独立的单元。封装强调两个概念,即独立和封闭。独立是指对象是一个不可分割的整体,它集成了事物全部的属性和操作,并且它的存在不依赖于外部事物。封闭是指与外部的事物通信时,对象要尽量地隐藏其
内部的实现细节,它的内部信息对外界来说是隐蔽的,外界不能直接访问对象的内部信息,而只能通过有限的接口与对象发生联系。封装是软件模块化思想的重要体现。
  4. 继承。继承表示类之间的层次关系,它使得某类对象可以自动拥有另外一个或多个对象的全部属性和操作。比如,某系统已经定义了一个学生类,现在还需要定义一个研究生类。由于研究生也属于学生的一种,它具有学生所有的一切属性和操作,这时就可以采用继承的方法,使研究生类直接获得学生类的一切属性和操作。在这个系统中,研究生类就叫做子类或派生类,学生类就叫做父类或基类。子类可以把父类定义的内容自动作为自己的部分内容,同时再加入新的内容。继承简化了定义一个新类的过程,有利于人们对事物的认识和描述,达到了软件复用的目的。
  5. 多态。多态是一种使父类中定义的属性或操作被子类继承后,可以有不同的实现的机制。换句话说,多态允许属于不同类的对象对同一消息做出不同的响应。当一个对象接收到进行某项操作的消息时,多态机制将根据对象所属的类,动态地选用该类中定义的操作。多态这种机制极大地减少了软件设计中的冗余信息,提高了软件的可复用性和可扩展性。
    二、面向对象技术的历史变革
    面向对象程序设计技术被认为是程序设计方法学的一场实质性的革命,是程序设计方法学得一个里程碑。
    20世纪60年代,软件曾出现过严重危机,由软件错误而引起的信息对视、系统报废事件屡有发生。为此,1968年,荷兰学者E.W.Dijkstra提出了程序设计中常用的GOTO语句的三大危害:破坏了程序的京东一致性,程序不易测试,限制了代码优化,此举引起了软件界长达数年的论战,并由此产生了结构化程序设计方法,同时诞生了基于这一设计方法的程序设计语言Pascal。由瑞士计算机学家开发的Pascal,一经推出,迅速走红。到了70年代末期,结构化程序设计语言和结构化分析与设计已经无法满足用户需求的变化,于是人们开始寻更先进的软件开发方法和技术,OPP由此应运而生。 OPP大大了软件的开发效率,减少了软件开发的复杂性,提高了软件系统的可维护性、可扩展性。
    过去的几十年中,程序设计语言对抽象机制的支持程度不断提高:从机器语言到汇编语言,到高级语言,直到面向对象语言。汇编语言出现后,程序员就避免了直接使用0-1,而是利用符号来表示机器指令,从而更方便地编写程序;当程序规模继续增长的时候,出现了FortranCPascal等高级语言,这些高级语言使得编写复杂的程序变得容易,程序员们可
以更好地对付日益增加的复杂性。但是,如果软件系统达到一定规模,即使应用结构化程序设计方法,局势仍将变得不可控制。作为一种降低复杂性的工具,面向对象语言产生了,面向对象程序设计也随之产生。
    面向对象设计方法以对象为基础,利用特定的软件工具直接完成从对象客体的描述到软件结构之间的转换。这是面向对象设计方法最主要的特点和成就。面向对象设计方法的应用解决了传统结构化开发方法中客观世界描述工具与软件结构的不一致性问题,缩短了开发周期,解决了从分析和设计到软件模块结构之间多次转换映射的繁杂过程,是一种很有发展前途的系统开发方法。1967年,挪威计算中心的Kisten NygaardOle Johan Dahl开发了Simula67pascal语言难学吗语言被认为是最早的面向对象程序设计语言。它引入了所有后来面向对象程序设计语言所遵循的基础概念:对象、类和继承。正是因为他们对类、对象、继承和动态绑定等重要概念的首先引入,为面向对象这一当前最流行、最重要的程序设计技术奠定了基础。20世纪60年代是程序设计语言发展史上的重要时期,在这个时间区间内,有3中重要的程序设计语言相继推出,除了Simula 67外,还有Algol 68PL/I。这三个语言各有特,均有创新,都对后来的程序设计语言产生了重大影响。但客观地说,Simula 67的面向对象概念的影响是巨大而深远的。它本身虽然未能广泛流行,但在它的影响下产生的面向对象技术却迅
速传播开来。70年代,Smalltalk的问世又给面向对象的语言注入了新的血液。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。