学库吧 > 软件设计师 > 正文

软件设计师面向对象知识点:面向对象方法简介 软件设

更新:2008-09-22 整理:www.xuekuba.com
字体:

[软件设计师知识点:面向对象语言概论一]面向对象语言概论(译自Martin Abadi, Luca Cardelli的对象理论一书的第一部分)译者前言这本书是我们上面向对象类型理论的教材。当时上这门课时,心里满不以为然,觉得自己的C++和OO已经颇有造纸,C++和Ja的类型系统不说倒背如流,也是轻车熟路,上这么一门课不是白拿学分?哈哈!但一上起来,才发现自己竟如井底之蛙一样。老天,原来就这么简单的面向对象竟有这么多说道!原来除了C++, Ja, 面向对......+阅读

软件设计师面向对象知识点:面向对象方法简介

面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO (Object-Oriented)方法,是建立在“对象”概念基础上的方法学。对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。
  面向对象方法作为一种新型的独具优越性的新方法正引起全世界越来越广泛的关注和高度的重视,它被誉为"研究高技术的好方法",更是当前计算机界关心的重点。十多年来,在对OO方法如火如荼的研究热潮中,许多专家和学者预言:正象70年代结构化方法对计算机技术应用所产生的巨大影响和促进那样,90年代OO方法会强烈地影响、推动和促进一系列高技术的发展和多学科的综合。
  一、面向对象方法的由来与发展
  回顾历史可激励现在,以规划将来。
  OO方法起源于面向对象的编程语言(简称为OOPL)。50年代后期,在用FORTRAN语言编写大型程序时,常出现变量名在程序不同部分发生冲突的问题。鉴于此,ALGOL语言的设计者在ALGOL60中采用了以"Begin……End"为标识的程序块,使块内变量名是局部的,以避免它们与程序中块外的同名变量相冲突。这是编程语言中首次提供封装(保护)的尝试。此后程序块结构广泛用于高级语言如Pascal 、Ada、C之中。
  60年代中后期,Simula语言在ALGOL基础上研制开发,它将ALGOL的块结构概念向前发展一步,提出了对象的概念,并使用了类,也支持类继承。70年代,Smalltalk语言诞生,它取Simula的类为核心概念,它的很多内容借鉴于Lisp语言。由Xerox公司经过对Smautalk7
  2、76持续不断的研究和改进之后,于1980年推出商品化的,它在系统设计中强调对象概念的统一,引入对象、对象类、方法、实例等概念和术语,采用动态联编和单继承机制。
  从80年代起,人们基于以往巳提出的有关信息隐蔽和抽象数据类型等概念,以及由Modula
  2、Ada和Smalltalk和等语言所奠定的基础,再加上客观需求的推动,进行了大量的理论研究和实践探索,不同类型的面向对象语言(如:Object-c、Eiffel、c++、Ja、Object-Pascal等)逐步地发展和建立起较完整的和雨后春笋般研制开发出来,OO方法的概念理论体系和实用的软件系统。
  面向对象源出于Simula,真正的OOP由Smalltalk奠基。Smalltalk现在被认为是最纯的OOPL。
  正是通过Smalltalk80的研制与推广应用,使人们注意到OO方法所具有的模块化、信息封装与隐蔽、抽象性、继承性、多样性等独特之处,这些优异特性为研制大型软件、提高软件可靠性、可重用性、可扩充性和可维护性提供了有效的手段和途径。
  80年代以来,人们将面向对象的基本概念和运行机制运用到其它领域,获得了一系列相应领域的面向对象的技术。面向对象方法已被广泛应用于程序设计语言、形式定义、设计方法学、操作系统、分布式系统、人工智能、实时系统、数据库、人机接口、计算机体系结构以及并发工程、综合集成工程等,在许多领域的应用都得到了很大的发展。1986年在美国举行了首届"面向对象编程、系统、语言和应用(OOPSLA’86)"国际会议,使面向对象受到世人瞩目,其后每年都举行一次,这进一步标志OO方法的研究已普及到全世界。
  二、面向对象的基本概念与特征
  用计算机解决问题需要用程序设计语言对问题求解加以描述(即编程),实质上,软件是问题求解的一种表述形式。显然,假如软件能直接表现人求解问题的思维路径(即求解问题的方法),那么软件不仅容易被人理解,而且易于维护和修改,从而会保证软件的可靠性和可维护性,并能提高公共问题域中的软件模块和模块重用的可靠性。面向对象的机能念和机制恰好可以使得按照人们通常的思维方式来建立问题域的模型,设计出尽可能自然地表现求解方法的软件。
  面向对象的基本概念
  对象:对象是要研究的任何事物。从一本书到一家图书馆,单的整数到整数列庞大的数据库、极其复杂的自动化工厂、航天飞机都可看作对象,它不仅能表示有形的实体,也能表示无形的(抽象的)规则、计划或事件。对象由数据(描述事物的属性)和作用于数据的操作(体现事物的行为)构成一独立整体。从程序设计者来看,对象是一个程序模块,从用户来看,对象为他们提供所希望的行为。在对内的操作通常称为方法。
  类:类是对象的模板。即类是对一组有相同数据和相同操作的对象的定义,一个类所包含的方法和数据描述一组对象的共同属性和行为。类是在对象之上的抽象,对象则是类的具体化,是类的实例。类可有其子类,也可有其它类,形成类层次结构。
  消息:消息是对象之间进行通信的一种规格说明。一般它由三部分组成:接收消息的对象、消息名及实际变元。
  面向对象主要特征:
  封装性:封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有那些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能力的算法)对用户是隐蔽的。封装的目的在于把对象的设计者和对象者的使用分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来访问该对象。

本文地址:http://www.xuekuba.com/view/14252030.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请给我们来信(willowduanall@hotmail.com),我们会及时处理和回复,谢谢.

类似推荐

软件设计师知识点:面向对象语言概论二4. Subsumption和Dynamic Dispatch (译者按:呵呵,黔驴技穷,找不到合适的翻译了)从上述的几个例子来看,似乎子类只是用来从父类借用一些定义,以避免重复。但是,当我们考虑到subsumption, 事情就有些不同了。什么是Subsumption呢?请看下面这个例子:var myCell: InstanceTypeOf(cell) := new cell;var myReCell: InstanceTypeOf(reCell) := new reCell;procedure f(x: InstanceTypeOf(cell)) is … end;再看下面这段码:myCe...
软件设计师上午知识点软件设计师上午识点分析近三年的考试情况,上午试题的识点分布如表1所示。 表1 近三年上午试题考核内容分布情况 题目编号 考核内容 1-6 计算机基础知识 7-9 10-11 标准化与知识产权 12-14 多媒体技术 15-19 软件开发基础知识 20-22 程序设计语言知识 23-28 作系统基础知识 29-36 软件过程、软件质量管理、文档与软件维护、软件测试 37-47 面向对象技术、UML、设计模式 48-50 程序语言基础知识 51-56 数据库系统基础...
软考程序员上午试题分析和备考建议本站求职网分析近几年程序员上午试题的考试内容,其识点和分值分布如下所示。考核内容 分值计算机应用 5~6计算机系统基础知识 8~10知识 2系统运行维护、性能与指标 2标准化与知识产权 2多媒体技术基础知识 2作系统基础知识 5~6程序设计语言基础知识 6~8面向对象技术基础知识 5软件工程基础知识 6~8数据结构和算法基础知识 8~10数据库系统基础知识 5~6数学应用知识 3网络基础知识 5英语 5...
软件设计师UML知识点:第七章类图前言类图是在面向对象的系统模型中使用得最普遍的图。类图包含了一组类、接口和协作以及他们之间的。你使用类图来为系统的静态视图建模。通常这包括模型化系统的词汇(从系统的词汇表中发现类),模型化协作,或则模型化模式。类图还是一些相关的图的基础,包括组件图、分布图。类图的重要性不仅仅体现在为系统建立可视化的、文档化的结构模型,同样重要的是构建通过正向和反向工程建立执行系统。术语和概念类图:类图是一组类...
如何准备系统分析师考试的上午考试尽管系统分析师考试上午试题分布很广泛,但是总是围绕目前软件开发过程中常用的技术、理论和方法,因此不建议按照大纲和参考按部就班的学有关的系统知识,而是应该注重学重点和技巧。由于考试大纲要求掌握的识点很分散,大多数识点在开始中都有所涉及,因此考生很难把握应该着重学哪些内容。我们通过把试题按照以下方法分类,就可以得到一些有意义的结论:几乎全部软件行业都会涉及到的内容,例如UML,面向对象,这...
软件设计师UML知识点:第一章UML模型的基本概念1 UML的建筑块组成UML有三种基本的建筑块:1、事物(Things)2、(Relationships)3、图(Diagrams)事物是UML中重要的组成部分。把事物紧密在一起。图是很多有相互相关的事物的组。1.1 UML的事物UML中有始终类型的事物:1、结构事物(Structural things)2、动作事物(Behioral things)3、分组事物(Grouping things)4、注释事物(Annotational things)这些事物是UML模型中最基本的面向对象的建筑块。它们在模型中...
软件设计师知识点:面向对象语言概论三传统的基于类的面向对象语言的一个主要特点就是inheritance, subclassing和subtyping之间的密不可分的。很多的面向对象语言的语法,概念,就是从这三者而来的。说,通过subclassing, 你可以继承父类的一些方法,而同时你又可以在子类中改写父类的方法。这个改写过的方法,通过subtyping, subsumption, 又可以从一个类型是父类的对象去调用。但是,inheritance, subclassing, subtyping这三者并不是永远和睦相处的。在一些...
软件设计师面向对象知识点:类和对象类的实现的基本格式:class 类名 类声明{类体的内容}类体中包括:变量的定义 + 方法的定义。例:class Ladder 类声明{float a,b,h,ladderArea; 定义变量float area() 定义方法{float ladArea;ladArea=(a+b)*h/2.0f;return ladArea;}void setHeight(float newH) 定义方法{h=newH;}}成员变量和部变量成员变量:类体中,变量定义部分所定义的变量。部变量:类体中,方法体定义的变量和方法的参数。成员变量的作用范围:在整个类...
软件设计师知识点:面向对象语言概论四四,彻底划清界限(继续分离Subclassing和Subtyping)在第二节我们讨论了部分分离Subclassing和subtyping的方法,即subclassing-implies-subtyping. 现今的多面向对象语言,如Ja, C#都是采用了这种技术。除此之外,还有一种进一步分离Subclassing和subtyping的方法。这种被称作inheritance-is-not-subtyping的方法通过完全割裂subclassing和subtyping之间的而在更大程度上方便了码的。它的产生很大程度上是由于人们想...