1 面向对象的核心
- 1个工具:抽象(Abstract)
- 2个概念:类是对象的类型。类和对象之间是抽象和具体的关系。类是创建对象的模板,对象是类的具体实例。类(class)是总称,对象是个体,因此对象(object)也叫实例(instance)。
- 类(Class):具有相同性质的对象的抽象体。
创建一个类就是创建一个新的数据类型,实例化一个类,就得到一个对象。
有两个部分:成员变量和成员方法
- 对象(Object):客观存在的实体
- 3个特性
- 封装(Encapsulation):将数据和数据的操作封装在一起
- 继承(Inheritance)
- 多态(Polymorphism)
- 4个步骤
- 分析(Analysis): 找出系统中的对象,抽象出类,确定它们所属的不同主题,分析它们之间的关系
- 设计(Design):对每个类应该封装的数据及其操作进行详细设计和描述
- 实现(Implementation):采用某种编程语言编码(Coding)实现各个类
- 测试(Test):由类创建对象,验证其功能和性能是否满足需求
2 类之间的关系
- 关联:类A与类B的实例之间存在特定的对应关系。
实线。
类之间的特定关系
- 一对一关联:例如假定一个家庭教师只教一个学生,一个学生只有一个家庭教师,那么家庭教师和学生之间是一对一关联。
- 一对多关联:例如假定一个足球队员只能加入一个球队,一个球队可以包含多个队员,那么球队和队员之间是一对多关联。
- 多对多关联:例如假定一个足球队员可以加入多个球队,一个球队可以包含多个队员,那么球队和队员之间是多对多关联。
- 依赖:类A访问类B提供的服务。
虚线。
如果类A访问类B的属性或方法,或者类A负责实例化类B,那么可以说类A依赖类B。
例:把大象装冰箱;在面板中绘图。
- 聚集:类A为整体类,类B为局部类,类A的对象由类B的对象组合而成。
带实线的菱形箭头。
整体与部分之间的关系
例:台灯和灯泡。
- 泛化:类A继承类B。
带实线的三角形箭头。
- 实现:类A实现了B接口。
带虚线的三角形箭头。