一,面向对象方法学概述
1,面向对象方法学的要点
1:对象
2:类
3:继承
4:传递消息
2,面向对象方法学的优点
1:与人类习惯的思维方法一致
2:稳定性好
3:可重用性好
4:较易开发大型软件产品
5:可维护性好
二,面向对象的概念
1,对象
(1)对象的形象表示
(2)对象的定义
1:对象是具有相同状态的一组操作集合
2:对象是对问题域中某个东西的抽象,这种抽象反映了系统保存有关这个东西的信息或与他交互的能力。也就是说,对象是对属性值和操作的封装。
3:对象::=<ID,MS,DS,MI>。
ID是对象的标识或者名字
MS是对象中的操作集合
DS是对象的数据结构
MI是对象受理的消息名字集合,(即对外接口)
(3)对象的特点:
1:以数据为中心
2:对象是主动的
3:实现了数据的封装
4:本质上具有并发性
5:模块独立性好
2,其他概念
(1)类(class)
具有相同属性和行为的一个或多个对象的描述
(2)实例(instance)
某个特定的类所描述的一个具体的对象
(3)消息(message)
要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明
1:接收消息的对象
2:消息选择符(消息名)
3:零个或多个变元
(4)方法(method)
1:方法就是对象所能执行的操作,也就是类中所定义的服务
2:方法描述了对象执行操作的算法,响应消息的方法
(5)属性(attribute)
属性就是类中所定义的数据,他是对客观世界实体所具有的性质的抽象
(6)封装(encapsulation)
把数据和实现操作的代码集中起来放在对象内部
对象具有封装性的条件
1:有一个清晰的边界
2:有确定的接口(即协议)
3:受保护的内部实现
(7)继承(inheritance)
是子类自动地共享基类中定义的数据和方法的机制
(8)多态性(polymorphism)
1:子类对象可以像父类对象那样使用,同样的的消息既可以发送给父类对象,又可以发送给子类对象
2:在类等级的不同层次中,可以共享一个行为的名字,然而,不同层次的类却各自按照自己的需求来实现这个行为
(9)重载(overloading)
1:函数重载:在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名
2:运算符重载:同一个运算符可以施加于不同类型的操作数上面
三,面向对象建模
为了理解事物面对事物做出的一种抽象,是对事物的一种无歧义的书面描述
四,对象模型
是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构
1,类图的基本符号
(1)定义类
1:使用标准术语
2:使用具有确切含义的名词
3:必要时用名词短语作名字
(2)定义属性
可见性 属性名:类型名 = 初值{性质串}
(3)定义服务
可见性 操作名(参数表)返回值类型{性质串}
2,表示关系的符号
(1)关联
1:普通关联
2:关联的角色
3:限定关联
4:关联类
(2)聚集
1:共享聚集
2:组合聚集
(3)泛化
1:普通泛化
2:受限泛化
(4)依赖和细化
1:依赖关系
2:细化关系
五,动态模型
动态模型表示瞬时的,行为化的系统的“控制性质”,他规定了对象模型中的对象的合法变化序列