第二章 面向对象方法学导论(1)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.2其他面向对象的概念(2)
2.实例(Instance) “实例”是由某个特定的类所描述的 一个具体的对象。 “对象”这个术语,既可以指一个具 体的对象,也可以泛指一般的对象, “实例”这个术语,必然是指一个具体 的对象。 C++中,要定义一个对象或实例,必须 先建立一个这类对象的类。
2.2其他面向对象的概念(3)
第二章
(待续)
2.1.2对象的定义
人们从不同角度给出对象的不同定义。 1.定义1 对象是具有相同状态的一组操作的集合。 2.定义2 对象是对属性值和操作的封装。 3.定义3 对象∷=〈ID,MS,DS,MI〉 其中,ID是对象的标识或名字 MS是对象中的操作集合 DS是对象的数据结构 MI是对象受理的消息名集合(即对外接口) 这个定义是一个形式化的定义。 总之,对象是封装了数据结构及可以施加在这些数据结构上的操 作的封装体,这个封装体有可以唯一地标识它的名字,而且向外界提 供一组服务(即公有的操作)。对象中的数据表示对象的状态,一个 对象的状态只能由该对象本身的操作来改变。
2.2其他面向对象的概念(9)
9.重载(Overloading) 有两种重载: ① 函数重载是指在同一作用域内的若干个参数特征 不同的函数可以使用相同的函数名字; ② 运算符重载是指同一个运算符可以施加于不同类 型的操作数上面。 在C++ 语言中函数重载是通过静态联编实现的, 也就是在编译时根据函数变元的个数和类型 , 决定到底使用函数的哪个实现代码;对于重载的 运算符,同样是在编译时根据被操作数的类型, 决定使用该算符的哪种语义。 如:cout<<“2”;表示向屏幕输出字符串2 x<<2;表示将x中的二进制左移2位
第二章 面向对象方法学导论
北京信息工程学院 计算机系 牟永敏
概要:本章深入系统地讲述面向对象方法学,主要内容 包括: 1.面向对象方法涉及的基本概念 2.面向对象建模 3.对象模型 4.面向对象分析 5.面向对象设计 6.面向对象实现 这些内容是面向对象程序设计的理论基础,它们不依 赖于具体的程序设计语言,也就是说,无论使用哪种 面向对象语言进行面向对象程序设计,本章内容都有 指导意义。
2.2其他面向对象的概念(7)
7. 继承(Inheritance) 继承是指能够直接获得已有的性质和特征, 而不必重复定义它们。子类自动地共享基 类中定义的数据和方法的机制。 (举例:父与子) 继承具有传递性,如果类C继承类B,类B 继承类A,则类C继承类A。一个类除了具 有该类所描述的性质外,还具有类等级中 该类上层全部基类描述的一切性质。
2.2其他面向对象的概念(4)
4.方法(Method) 方法,就是对象所能执行的操作,也就是类中所定义的服务。 类中的方法是通过自己的某个或某些操作来改变自己的数据, 即改变自己的形态。从而达到为顾客服务的目的。例如: 一个口技演员(对象)为了让观众(对象) 笑(要求口技演 员这个对象提供的服务)。口技演员必须通过收紧或放松 自己的口型(对象自己的操作)来改变从自己口里出来的 声音频率(对象自己的数据),已实现为顾客提供的服务。 在C++ 语言中把方法称为成员函数。通常,一个函数对应一 个操作。实现一个功能。以圆这个对象举例: 圆类中必须定义能够显示这个圆和能够隐藏这个圆的方法 (用以为其他对象提供给服务),实现时,通过两个函数 来改变画圆的颜色(圆自己数据)
2.2其他面向对象的概念(5)
5.属性(Attribute) 属性,就是类中所定义的数据,它是 对客观世界实体所具有的性质的抽象。 类的每个实例都有自己特有的属性值。 (举例:汽车类) 在C++ 语言中把属性称为数据成员。
2.2其他面向对象的概念(6)
6.封装性(Encapsulation) 把数据和实现操作的代码集中起来放在对象内部。 使用一个对象的时候,只需知道它向外界提供的 接口形式而无须知道它的数据结构细节和实现操 作的算法 。 (举例:甲向已借钱) 实现封装的条件 : (1)有一个清楚的边界。 (2)有确定的接口(这些接口就是对象可以接受的消 息,用户只能通过向对象发送消息来使用它)。 (3)受保护的内部实现。 封装性就是信息隐藏,把对象的实现细节对外界 隐藏起来。
2.2其他面向对象的概念(8)
8.多态性(Polymorphism ) 在类等级的不同层次中,相同的消息,被不 同的类(属同一簇)的对象接收,产生了不 同的行为。(举例:进入父子铁匠铺) 在C++ 语言中,多态性是通过虚函数来实现 的。虚函数机制使得程序员能在一个类等级 中使用相同函数的多个不同版本,在运行时 刻才根据接收消息的对象所属于的类,决定 到底执行哪个特定的版本,这称为动态联编, 也叫滞后联编。
3.消息: 是对象之间相互请求相互协作的途径,是要求 某个对象执行其中某个操作的规格的说明。 一个消息由下述三部分组成: (1)接收消息的对象; (2)消息选择符(也称为消息名); (3)零个或多个变元。 例如 : MyCircle.Show(GREEN) ; 其中: MyCircle是接收消息的对象的名字 Show是消息选择符(即消息名) GREEN是消息的变元。
2.1.3对象的特点 (2)
4. 本质上具有并行性。不同对象各自独立 地处理自身的数据,彼此通过发消息传递 信息完成通信。因此,对于不同的对象来 说,本质上具有并行工作的属性。 5. 模块独立性好。对象是面向对象的软件 的基本模块。
2.2其Biblioteka Baidu面向对象的概念(1)
1.类(class) 定义1:类就是对具有相同数据属性和相同操作的一 组相似对象的定义 。 定义2:类是由描述事物属性的数据结构和建立在此 数据结构上的操作所组成的一种抽象的数据类型。 数据结构:数据结构讨论的是现实世界中数据的各种 逻辑结构,在计算机中的存储结构以及进行各种非 数值运算的算法(处理问题的方法)。
2.1.3对象的特点 (1)
1. 以数据为中心。 操作是为数据服务的。 2. 对象是主动的。为了完成某个操作,不能从外部直 接加工它的私有数据,而是必须通过它的公有接口 向对象发消息,请求它执行它的某个操作,处理它 的私有数据。(举例:厨师与理发匠) 3. 实现了数据封装。对象好像是一只黑盒子,它的私 的数据完全被封装在盒子内部,对外是隐藏的、不 可见的,对私有数据的访问或处理只能通过公有的 操作进行。抽象数据类型的概念,无须知道数据的 具体结构以及实现操作的算法。
2.1对象
• 面向对象方法学中的对象: 是由描述该对象属性的数据以及可以 对这些数据施加的所有操作封装在一起 构成的统一体。对象可以作的操作表示 它的动态行为,通常称为服务或方法。
2.1.1对象的形象表示(1)
Ù × ² ÷1
ç ½ æ Ã
×Ì ´ ¬ S
Ù × ² ÷2 Ù × ² ÷3 Ù ÷ ² ×1,2,3µ Ä Ê µ Ï Ö
¼ 2.1 ¶ Í Ô Ï ó µ Ä Ð Î Ï ó í ±Ê ¾
2.1.1对象的形象表示(举例)
一个对象很象一台录音机。当在软件中使 用一个对象的时候,只能通过对象与外界的界 面来操作它。对象与外界的界面也就是该对象 向公众开放的操作,例如,C++ 语言中对象的 公有的(Public)成员函数。一个对象好象是 一个黑盒子,表示它内部状态的数据和实现各 个操作的代码及局部数据,都被封装在这个黑 盒子内部,在外面是看不见的,更不能从外面 去访问或修改这些数据或代码。