预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共34页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

面向对象方法学的出发点和基本原则,是尽可能使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。 客观世界的问题都是由客观世界中的实体及实体相互间的关系构成的。我们把客观世界中的实体抽象为问题域中的对象(object)。概括地说,面向对象方法具有下述4个要点: (1)面向对象方法用对象分解取代了传统方法的功能分解。 面向对象的软件系统是由对象组成的,软件中的任何元素都是对象,复杂的软件对象由比较简单的对象组合而成。 (2)把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。 数据用于表示对象的静态属性,是对象的状态信息。 方法,是允许施加于该类对象上的操作,是该类所有对象共享的。 (3)按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。在这种层次结构中,通常下层的派生类具有和上层的基类相同的特性(包括数据和方法),这种现象称为继承(inheritance)。 低层的特性将屏蔽高层的同名特性。如果在派生类中对某些特性又做了重新描述,则在派生类中的这些特性将以新描述为准。 (4)对象彼此之间仅能通过传递消息互相联系。对象是进行处理的主体,必须发消息请求它执行它的某个操作,处理它的私有数据,而不能从外界直接对它的私有数据进行操作。2.1.1面向对象方法学的优点3)可重用性好 有两种方法可以重复使用一个对象类:一种方法是创建该类的实例,从而直接使用它;另一种方法是从它派生出一个满足当前需要的新类。 4)较易开发大型软件产品 5)可维护性好 2.1.2喷泉模型对象是由描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一体。 对象可以作的操作表示它的动态行为,通常把对象的操作称为服务或方法。1对象对象特征举例STUDENT对象类举例面向结构程序设计面向对象程序设计对象的特点:基本概念实例(Instance) 是由某个特定的类所描述的一个具体的对象。 “对象”这个术语,既可以指一个具体的对象,也可以泛指一般的对象,“实例”这个术语,必然是指一个具体的对象。 C++中,要定义一个对象或实例,必须先建立一个这类对象的类。属性(Attribute) 类中所定义的数据,它是对客观世界实体所具有的性质的抽象。类的每个实例都有自己特有的属性值。 例:圆类(半径、位置、颜色) 在C++语言中把属性称为数据成员。方法(Method) 对象所能执行的操作,它应用于类或被类中对象使用。 在C++中称为成员函数。通常,一个函数对应一个操作,实现一个功能。 例:圆对象响应显示圆的消息 在Circle类中必须定义能够显示这个圆的方法,即编写成员函数Show(intcolor)。 消息(Message) 对象之间相互请求相互协作的途径 一个消息由下述三部分组成: (1)接收消息的对象; (2)消息选择符(也称为消息名); (3)零个或多个变元。 例如:MyCircle.Show(GREEN); 其中: MyCircle是接收消息的对象的名字 Show是消息选择符(即消息名) GREEN是消息的变元。 封装性(Encapsulation) 封装即把数据和实现操作的代码集中起来放在对象内部,外界通过对象提供的接口来使用它,不需知道内部数据结构细节和实现操作的算法。 实现封装的条件: (1)有一个清楚的边界 (2)有确定的接口(用于接受用户发送的消息) (3)受保护的内部实现 封装的好处就是实现了信息隐藏,把对象的实现细节对外界隐藏起来了,提高安全性。 在C++中,通过定义类来实现封装。继承(Inheritance) 指能够直接获得已有的性质和特征,而不必重复定义它们。是子类自动地共享基类中定义的数据和方法的机制。 例:家族关系 继承具有传递性,如果类C继承类B,类B继承类A,则类C继承类A。一个类除了具有该类所描述的性质外,还具有该类上层全部基类描述的一切性质。继承性举例具有继承关系的对象的特性继承性的优点多态性(Polymorphism) 在类等级的不同层次中,相同的消息,被不同类的对象接收,产生了不同的行为。 好处:增加软件系统的灵活性,减少了信息冗余,提高了软件的可重用性和可扩充性。 在C++语言中,多态性是通过虚函数来实现的。(动态联编)重载(Overloading) 有两种重载: 函数重载是指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字; 例: 运算符重载是指同一个运算符可以施加于不同类型的操作数上面。 例:cout<<“2”;表示向屏幕输出字符串2 x<<2;表示将x中的二进制左移2位 2.1.4面向对象的开发语言和开发工具第二章面向对象技术与UML第二章面向对象技术与UML2