核心技术:对象与类

来自Wikioe
Eijux讨论 | 贡献2020年10月16日 (五) 17:44的版本 →‎类之间的关系
跳到导航 跳到搜索


oop

面向对象的程序时由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。
  1. 面向对象:
  2. 面向过程:
  3. 面向切面:

面向过程与面向对象.png

类 与 对象

  1. 类是构造对象的模板或蓝图,对象是类的实例化
  2. 由类构造(construct)对象的过程称为创建类的实例(instance)
  3. 封装(encapsulation,有时称为数据隐藏):将数据(实例域,instance field)和行为(方法,用于操纵数据)组合在一个包中,并对对象的使用者隐藏了数据的实现方式
  4. 对象的实例域的几个就是这个对象的当前状态(state)
  5. 通过扩展一个类来建立另一个类的过程称为继承(inheritance)
  • “Object”是所有类的超类
  • 对象状态的改变必须通过调用方法实现(封装的意义)
  • 开发过程中,分析问题中的名词对应着类和类的实例域,动词对应着类的方法;

类之间的关系

  1. 依赖(“uses-a”):一个类的方法操纵另一个类的对象
  2. 聚合(“has-a”):一个类中包含另一个类的对象
  3. 继承(“is-a”):一个类由另一个类扩展而来

类关系的UML符号.png

实例(UML)

关联(Association)
  1. 单向关联:
    单向关联.png
  2. 双向关联:
    双向关联.png
  3. 自身关联:
    自身关联.png
  4. 多维关联:
    多维关联.png
聚合(Aggregation)
聚合(Aggregation).png
组合(复合,Composition)
组合(复合,Composition).png
  • 聚合的成员可独立,复合的成员必须依赖于整体才有意义
泛化(Generalization)

泛化指的是类与类之间的继承关系和类与接口之间的实现关系。

  1. 继承:
    泛化(Generalization):继承.png
  2. 实现:
    泛化(Generalization):实现.png

使用预定义类

用户自定义类

静态域与静态方法

方法参数

对象构造

类路径

文档注释