type
Post
status
Published
date
Feb 5, 2026
slug
summary
tags
応用情報技術者試験
category
国家資格勉強
icon
password
小南伴你学-応用情報-第8期:系统开发之面向对象
什么,你的对象其实不是人类?
对于已经学习过面向对象编程的人来说,面向对象的思想还是挺容易理解的:类实例化后之后是对象,子类可以继承父类的属性和方法,而通过调用不同对象的方法可以实现各自特定的功能。
然而,学习编程本身非常耗时,因此我们可以通过比喻来快速理解面向对象的概念。
一些有趣的事情:
从文化和语言的角度来看
- 英语圈文化
- 人们普遍具有较强的边界意识。
- 语言上也体现出这种边界感,例如交流中会区分 类(class)用复数,对象(object)用单数,以明确抽象集合与具体个体。
- 中文文化
- 边界意识相对较弱。
- 语言上也不明确的说是类还是对象。
因此,可能在一定程度上,英语好的人会更容易理解面向对象的概念,因为英语本身就强化了类与对象、集合与个体的边界意识。
学前小菜

引入
比如人类只真正经验过“有”,对“无”的想象,本质上仍然是对“有”的变形。
比如宇宙的尽头、时间的起点、完全的虚无……都是从“有”的认知延伸出来的抽象概念。
面向对象也是一种方法论:它让计算机理解人类的事物和事件。要模拟现实,必须先抽象成类(Class),再生成对象(Object)去操作。
- 创造新的事物,也同样依赖已有认知的抽象。
- 所以,人类特别喜欢搞抽象——搞抽象本身就是创造力的体现。
Thing time


为什么?
张三丰让张无忌“忘掉招式”,本质上是在把“具体实现”抽象成“内在原理”。

关于AI的知识扩展:
ドロップアウト【dropout】


在此前内容中,我们已经学习了面向过程与面向数据两种程序设计思想。
接下来,引入面向对象:
面向过程 + 面向数据 = 面向对象
面向对象思想认为,现实世界中的事物、概念和事件可以抽象为类(Class),再通过类实例化生成对象(Object),用以模拟其行为和状态。
面向对象,其实就是字面意思
先用日常语言来理解:
“我有对象了。”
1️⃣ “有”的意思
- 并不是组成关系(part-of)——对象不是你身体的一部分
- 正确理解是建立关系 / 关联(Association)
- 对象是独立的实体,可以与你互动,但生命周期不完全依赖你
💡 OOP 对应概念:Association(关联)
2️⃣ 对象的意思
- 并不是“我养了一条狗”那样的依赖关系
- 对方是独立存在的
- 可以与我互动 → 对应 方法调用(Method Call)
- 拥有自己的状态,信息,隐私 → 对应 属性(Attribute)
- 会一些技能,可以提供点什么 → 对应 方法(Method)
- 并非凭空出现,而是从人类(DNA 实例化)而来的 → 对应 类(Class)
- 人类也不是凭空出现,而是从动物类继承而来 → 对应 父类(Superclass)
严格区分对象与类
- 口语中,你可能说“我对象是人类”,但严格来说:
- 我对象是人类的实例化实体
- 类是定义该实体属性和方法的模板
- 父类是上级模板,被子类继承
用面向对象的语言可以总结为:
知识check
人类属于动物叫继承 人类是从动物继承而来 这个叫抽象化
我女朋友属于人类叫实例化 对象是从人类实例化而来,叫具体化
油门属于汽车,我的上半身属于我 叫part of 关系,上半身是我的一部分,油门是汽车的一部分
我的女朋友(另一半)属于我 叫调用关系 可以互相提供某些价值
你属于你爸妈 说明来源
顾客的公司名,顾客的家庭住址,电话属于顾客,只是在说明所有权
虽然都是从属关系,
但是是不一样的概念哈!


抽象化是从具体事物中提取共通特征以形成模型的过程,
其中,泛化是其典型形式之一。
还是不懂?

面向对象的核心特性
1️⃣ 封装(Encapsulation)カプセル化
- 定义:把对象的属性(数据)和方法(功能)封装在一起,对外只暴露必要接口。
- 图中体现:
- “我的对象”有属性:姓名、年龄、体重、技能列表
- 方法:听()、读()、看()、说()等等
- 外部对象(比如“我”)通过调用方法获取信息或行为,比如调用我的对象.说("你在想什么呢")会返回"好饿啊!"
- 但是我不能直接查看其隐私,比如她的前男友列表
2️⃣ 继承(Inheritance)
- 定义:子类自动拥有父类的属性和方法,可以复用或扩展。
- 图中体现:
动物类是父类,人类和狗类是子类- 动物类有进食()、呼吸()、移动()、繁殖(),人类和狗类自动拥有这些方法
3️⃣ 多态(Polymorphism)
- 定义:同一个方法在不同对象上可以有不同表现形式。
- 图中体现:
吠叫()方法:- 小黑(狗类)调用 → 返回“汪汪”
- 其他狗对象调用 → 可以返回不同叫声
看()方法:- 我的对象.看("我家猫会后空翻”)会返回 你家猫描好厉害哦!
- 大哥的对象.看("我家猫会后空翻”)会返回 你别忘了我可是你大哥的女人哦!
4️⃣ 抽象(Abstraction)
- 定义:只关注对象的外部行为和特征,不关心内部实现细节。
- 图中体现:
- “我”调用“我的对象”的方法
读("莎士比亚名言") - 不需要知道内部怎么读取文本,只关心返回结果
- 比喻:你按下咖啡机按钮,不关心水如何加热、咖啡如何滴落,只关心最后得到咖啡。
5️⃣ 对象的独立性
- 定义:每个对象都是独立的实体,有自己的属性和状态。
- 图中体现:
- “我”、“我的对象”、“小黑”各自有独立属性:
- 我:年龄=19、体重=60kg
- 我的对象:年龄=18、体重=50kg、技能=摄影、跳舞,前男友列表=小张,小王
- 小黑:年龄=1、体重=5kg、叫声=汪汪
- 比喻:每个人、每只狗都是独立的个体,有自己的信息和行为能力。
💡 总结表格
特性 | 定义 | 图中例子 | 比喻 |
封装 | 属性和方法捆绑,对外只暴露接口 | 我的对象的方法:拍照()、读()、说话() | 手机可以打电话拍照,但内部芯片封装了 |
继承 | 子类继承父类属性和方法 | 人类和狗类继承动物类的进食()、呼吸() | 狗和猫都是动物,都会吃饭、呼吸 |
多态 | 同方法不同对象表现不同 | 吠叫() → 小黑:汪汪;说话() → 我的对象:“你在想什么呢” | 每个人说“你好”,声音和语气不同 |
抽象 | 只关心行为,不关心实现 | 读() 方法 → 返回莎士比亚名言 | 按咖啡机按钮得到咖啡,不管内部怎么滴落 |
独立性 | 每个对象有自己状态 | 我、我的对象、小黑各自属性不同 | 每个人、每只宠物都是独立个体 |
知识check







- 父类声明方法 → “我告诉你能做什么”
- 子类实现方法 → “我实际怎么做”
- 动态绑定 → “调用方法的时候,看我实际是什么子类,再执行对应动作”
- 如果子类没有覆盖父类方法 → 就执行父类的方法

UML2.0
UML(UnifiedModelingLanguage)统一建模语言,是面向对象软件的标准化建模语言。由于面向对象软件开发需要经过OOA(面向对象分析),OOD(面向对象设计),OOP(面向对象编程)三个阶段,每个阶段都需要统一的符号设计描述和交流,而UML就是这种统一的符号表示。
カテゴリ | UML 図 | 簡単説明 |
構造図 | クラス図(Class Diagram) | クラスやインターフェース、関係を静的に表現 |
ㅤ | オブジェクト図(Object Diagram) | ある時点でのオブジェクトと属性の状態を表現 |
ㅤ | パッケージ図(Package Diagram) | システム要素のグループ化と依存関係を表現 |
ㅤ | コンポーネント図(Component Diagram) | システムコンポーネントとインターフェースの依存関係 |
ㅤ | 配置図(Deployment Diagram) | システムのハードウェアノードと配置関係を表現 |
ㅤ | 複合構造図(Composite Structure Diagram) | オブジェクト内部構造と接続関係を表現 |
振る舞い図 | ユースケース図(Use Case Diagram) | システム機能とユーザーとの相互作用を表現 |
ㅤ | アクティビティ図(Activity Diagram) | 業務フローや処理の流れを表現 |
ㅤ | ステートマシン図(State Machine Diagram) | オブジェクトの状態と状態遷移を表現 |
相互作用図 | シーケンス図(Sequence Diagram) | オブジェクト間のメッセージの時間順序を表現 |
ㅤ | コミュニケーション図(Communication Diagram) | オブジェクト間のメッセージ関係を表現 |
ㅤ | タイミング図(Timing Diagram) | オブジェクトの状態変化を時間軸で表現 |
ㅤ | 相互作用概要図(Interaction Overview Diagram) | 活動図とシーケンス図を組み合わせて交互作用フローを表現 |
太多了,我们只具体学习6种
クラス図(Class Diagram)
项目 | 内容 |
目的 | 将软件或系统中的“类”及其关系(继承、关联、依赖等)可视化。用于设计阶段理解系统结构和共享设计规范。 |
主要元素 | - 类(Class):包含属性(数据)和操作(方法)
- 属性(Attribute):类所持有的数据
- 操作(Operation / Method):类可以执行的功能
- 关联(Association):类与类之间的联系
- 继承(Generalization):父类与子类的关系
- 依赖(Dependency):一个类受另一个类影响的关系
- 多重性(Multiplicity):1对多、多对多等关系 |
特点 | - 面向对象设计的基础- 明确类之间的关系- 表示系统的静态结构- UML标准图,广泛使用 |
使用示例 | - 系统设计文档中说明结构- 面向对象程序的设计- 理解和重构现有系统- 数据库设计(整理实体和属性) |


オブジェクト図(Object Diagram)

ユースケース図(Use Case Diagram)
項目 | 説明 |
目的 | システムの機能と利用者(アクター)の相互作用を可視化 |
主な要素 | - アクター(Actor):システム外部の人・他システム
- ユースケース(Use Case):システムの提供機能
- 関係(Relationships):関連(Association)、包含(Include)、拡張(Extend) |
特徴 | - 利用者視点でシステムの機能を整理できる- システム境界を明確にできる- 技術実装に依存せず、抽象的に表現可能 |
使用例 | - ログイン機能の整理- ECサイトでの購入フローの把握- 図書館システムの貸出・返却機能整理 |



アクティビティ図(Activity Diagram)
项目 | 内容 |
目的 | 表示系统或业务流程中的活动(动作)及其顺序,强调控制流和并发流。用于分析业务逻辑、工作流程或用例执行过程。 |
主要元素 | - 活动(Activity / Action):具体执行的操作或任务
- 初始节点(Initial Node):流程开始点
- 结束节点(Final Node):流程结束点
- 控制流(Control Flow):活动之间的顺序连接
- 分支(Decision / Merge):根据条件选择路径
- 并行/合并(Fork / Join):表示并发执行和同步
- 对象流(Object Flow):数据在活动间流动
- 泳道(Swimlane):表示责任分区(谁执行) |
特点 | - 强调活动顺序和流程逻辑- 可以表示条件分支和并发- 用于业务建模、用例流程描述和系统内部流程- UML标准图,常用于需求分析和系统设计 |
使用示例 | - 用户登录、购物下单等业务流程描述- 系统内部操作流程- 工作流管理和审批流程- 用例执行的详细流程建模 |


ステートマシン図(State Machine Diagram)
项目 | 内容 |
目的 | 描述对象在生命周期中可能的状态及状态之间的转换,强调事件触发和状态变化。用于建模对象行为和动态特性。 |
主要元素 | - 状态(State):对象所处的某种条件或阶段- 初始状态(Initial State):对象生命周期开始状态- 结束状态(Final State):对象生命周期结束状态- 转换(Transition):从一个状态到另一个状态的移动,由事件触发- 事件(Event):引发状态变化的外部或内部事件- 动作(Action / Activity):状态进入、退出或转换时执行的操作- 条件/守卫(Guard):转换发生的条件限制 |
特点 | - 描述对象的动态行为- 强调事件驱动的状态变化- 可以捕捉复杂生命周期和异常处理- UML标准图,适用于面向对象设计和嵌入式系统建模 |
使用示例 | - 订单状态管理(创建 → 支付 → 发货 → 完成)- 自动售货机状态(等待投币 → 投币完成 → 选择商品 → 出货)- 登录状态管理(未登录 → 登录中 → 已登录 → 登出)- 设备控制系统(开启 → 运行 → 故障 → 关闭) |

シーケンス図(Sequence Diagram)
项目 | 内容 |
目的 | 描述对象之间随时间发生的消息交互,显示系统运行时的动态行为。 |
主要元素 | - 对象/角色(Object / Actor):参与交互的实体- 生命线(Lifeline):对象存在的时间轴- 消息(Message):对象之间传递的信息或调用- 激活条(Activation / Execution):对象执行操作的时间段- 返回消息(Return Message):操作执行完成后的返回 |
特点 | - 强调时间顺序- 显示对象间交互细节- 动态行为建模工具- UML标准图,常用于用例分析和系统设计 |
使用示例 | - 用户登录流程- 订单处理流程- 客户端-服务器交互- API调用顺序展示 |


コミュニケーション図(Communication Diagram)
项目 | 内容 |
目的 | 描述对象之间的消息传递及对象间的关系,强调对象间的结构连接和交互顺序。 |
主要元素 | - 对象(Object / Actor):参与交互的实体- 连接(Link):对象之间的关联或通信通路- 消息(Message):通过连接传递的信息或方法调用- 序号(Sequence Number):标示消息的发送顺序 |
特点 | - 强调对象间的结构关系
- 显示消息的发送顺序
- 与时序图类似,但更关注对象关系而非时间轴
- UML标准图,适合分析系统交互和协作 |
使用示例 | - 客户端与服务器交互- 订单处理各对象之间的协作- 系统模块间的调用流程- 用例执行的对象间消息流 |

知识check






- Author:minami
- URL:https://www.minami.ac.cn//national-license/2fdd7ae8-88e2-800f-bb2d-fc46ff541492
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts




