课程
08-object-oriented
面向对象方法学
基本原则:面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。
要点:
- 对象:任何客观的事物或实体都是对象,复杂的对象可以由简单的对象组成。
- 类:把所有对象都划分成各种对象类,每个对象类都定义了一组数据和一组方法。
- 继承:按子类与父类的关系,把若干个对象类组成一个层次结构的系统。子类自动具有和上层的父类相同的数据和方法。
- 继承性:对象彼此之间仅能通过传递消息互相联系。切该对象的私有信息,都被封装在该对象类的定义中。
优点:
- 与人类习惯的思维方法一致
- 稳定性好
- 可重用性好
- 较易开发大型软件产品
- 可维护性好
面向对象基本概念
对象:在应用领域中有意义的、与所有解决的问题有关系的任何事物都可以作为对象。它既可以是具体的物理实体,也可以是人为的概念,或者是任何有明确边界和意义的东西
组成:对象由一组属性和对这组属性进行操作的一组方法(服务)组成,属性和行为封装在一起构成一个整体;属性一般通过执行对象的操作来改变
特点:
- 以数据为中心
- 对象是主动的
- 实现了数据封装
- 具有并行性
- 模块独立性好
类:对具有相同数据和相同操作的一组对象的定义
实例:由某个特定的类所描述的一个具体对象。类是对象的抽象,对象是类的实例。
消息:要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。由接收消息的对象、消息选择符、零个或多个变元组成。
方法和属性:
- 方法:对象所能执行的操作,即类中所定义的服务。
- 属性:类中所定义的数据,是对客观世界实体具体性质的抽象。
封装:把数据和实现操作的代码集中起来封装在对象内部。封装也是信息隐藏,通过封装对外界隐藏了对象的实现细节。
继承:继承是子类自动地共享父类中定义的数据和方法的机制,子类能够直接获得已有的性质和特征,不必重复定义。
- 单继承:一个类只允许有一个父类,即类等级为树形结构。
- 多继承:一个类允许有多个父类
多态:子类对象可以像父类对象那样使用。在类等级的不同层次中可以共享一个行为的名字,然而不同层次中的每个类却各自按自己的需要来实现这个行为。
重载:运算符重载(同一个运算符可以施加于不同类型的操作数上面)和函数重载(在同一作用域,若干个参数特征不同的函数可以使用相同的函数名)。
选择题:
- 面向对象(ObjecrOriented)方法是将现实世界的事物以对象的方式()到计算机世界的方法。
- A.对应
- ==B.映射==
- C.反映
- D.反射
- 通过执行对象的操作改变该对象的属性,但它必须通过()的传递。
- A.接口
- ==B.消息==
- C.信息
- D.操作
- 一个对象通常由对象名、属性和()组成
- A.数据流
- B.数据项
- ==C.操作==
- D.类
- 对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。
- A.结合
- B.隐藏
- ==C.封装==
- D.抽象
- 类是一组具有相同属性和相同操作的()的集合。
- A.消息
- B.结构
- ==C.对象==
- D.模型
面向对象建模
三类模型:
- 对象模型(object model):定义实体,描述系统数据,定义”对谁做”)
- 动态模型(dynamicmodel):描述系统控制结构,规定”何时做”
- 功能模型(functional model):描述系统功能,指明系统应”做什么”
选择题:
- 面向对象的分析方法主要是建立三类模型,即()。
- A.系统模型、ER模型、应用模型
- B.对象模型、动态模型、应用模型
- C.E-R模型、对象模型、功能模型
- ==D.对象模型、动态模型、功能模型==
- 表示对象的相互行为的模型是()模型
- A.对象
- ==B.动态==
- C.功能
- D.静态
- 面向对象分析阶段建立的三个模型中,最关键的模型是()模型。
- ==A.对象==
- B.动态
- C.功能
- D.静态
UML(统一建模语言)
定义:统一建模语言(Unified Modeling Language,UML)是用一组专用符号描述软件模型的可视化的建模语言,不涉及编程问题,与语言平台无关,是对软件制品进行可视化、详述、构造和文档化的语言。当前广泛使用的是UML2.0版本。
特点:
- 统一了面向对象的Booch方法、对象模型技术(OMT)方法和面向对象的软件工程(OOSE)方法等方法中的基本概念。
- UML所定义的概念和符号可用于软件开发的分析、设计和实现的全过程。
- UML所用的语言元素基本都是图形化的,便于理解和沟通。
- UML可应用于任何软件开发过程、任何语言和工具平台。
- UML概念明确,建模表示方法简洁明了,图形结构清晰,所以易于掌握和使用。
应用领域:
-
用户需求分析阶段
-
系统分析阶段
-
设计阶段
-
编程(构造)阶段
-
测试阶段
-
对象模型:类图、对象图
-
动态模型:顺序图、协作图、状态图、活动图
类图与对象图
![[assets/Pasted image 20260111204157.png|400]] ![[assets/Pasted image 20260111204458.png|250]]
| 关系 | 解释 |
|---|---|
| 关联 | 描述了类的对象间的关系,特殊形式有聚集关联和组成关联 |
| 聚集关联 | 用于表示整体 (聚集) 与部分的关系。 |
| 组成关联 | 用于表示整体 (聚集) 与部分的关系,且整体与部分具有相同的生命周期,整体不存在了,部分也随之消失 |
| 泛化关系 | 继承关系,存在于父类与子类,父接口与子接口之间 |
| 依赖关系 | 描述了一个类的变化对依赖于它的类产生影响的情况 |
对象图:展示了一组对象和它们之间的关系 ![[assets/Pasted image 20260111205135.png|400]]
用例图
- 用例(Use Case):椭圆
- 参与者(Action):小人图
- 关联
![[assets/Pasted image 20260111205647.png|225]]
| 关系 | 解释 |
|---|---|
| 关联 | 表示参与者与用例之间的交互,通信途径。(也可用带箭头的实现,表明发起用例的参与者) |
| 包含 | 表示用例间的关系,箭头指向的为被包含用例。 |
| 扩展 | 表示用例间的关系,箭头指向的为扩展用例 |
| 泛化 | 表示参与者之间的关系,发出箭头的一方代表特殊的一方,箭头指向的代表一般一方 |
顺序图(时序图)
描述对象之间传送消息的时间顺序,用来表示用例当中行为的顺序,顺序图当中包括的一些主要元素有对象、生命线、控制焦点、激活区、还有消息。
![[assets/Pasted image 20260111210209.png|700]]













