type
Post
status
Published
date
Feb 5, 2026
slug
summary
tags
応用情報技術者試験
category
国家資格勉強
icon
password
小南伴你学-応用情報-第8期:系统开发之面向对象

什么,你的对象其实不是人类?

对于已经学习过面向对象编程的人来说,面向对象的思想还是挺容易理解的:类实例化后之后是对象,子类可以继承父类的属性和方法,而通过调用不同对象的方法可以实现各自特定的功能。
然而,学习编程本身非常耗时,因此我们可以通过比喻来快速理解面向对象的概念。
一些有趣的事情:
从文化和语言的角度来看
  • 英语圈文化
    • 人们普遍具有较强的边界意识。
    • 语言上也体现出这种边界感,例如交流中会区分 类(class)用复数,对象(object)用单数,以明确抽象集合与具体个体。
  • 中文文化
    • 边界意识相对较弱。
    • 语言上也不明确的说是类还是对象。
因此,可能在一定程度上,英语好的人会更容易理解面向对象的概念,因为英语本身就强化了类与对象、集合与个体的边界意识。

学前小菜

notion image

引入

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

Thing time

Video preview
Video preview
为什么?
 
张三丰让张无忌“忘掉招式”,本质上是在把“具体实现”抽象成“内在原理”。
notion image
关于AI的知识扩展:
ドロップアウト【dropout】
notion image
notion image
 

在此前内容中,我们已经学习了面向过程面向数据两种程序设计思想。
接下来,引入面向对象:
面向过程 + 面向数据 = 面向对象
面向对象思想认为,现实世界中的事物、概念和事件可以抽象为类(Class),再通过类实例化生成对象(Object),用以模拟其行为和状态。

面向对象,其实就是字面意思

先用日常语言来理解:
“我有对象了。”
1️⃣ “有”的意思
  • 并不是组成关系(part-of)——对象不是你身体的一部分
  • 正确理解是建立关系 / 关联(Association)
  • 对象是独立的实体,可以与你互动,但生命周期不完全依赖你
💡 OOP 对应概念:Association(关联)
2️⃣ 对象的意思
  • 并不是“我养了一条狗”那样的依赖关系
  • 对方是独立存在的
  • 可以与我互动 → 对应 方法调用(Method Call)
  • 拥有自己的状态,信息,隐私 → 对应 属性(Attribute)
  • 会一些技能,可以提供点什么 → 对应 方法(Method)
  • 并非凭空出现,而是从人类(DNA 实例化)而来的 → 对应 类(Class)
  • 人类也不是凭空出现,而是从动物类继承而来 → 对应 父类(Superclass)

严格区分对象与类

  • 口语中,你可能说“我对象是人类”,但严格来说:
    • 我对象是人类的实例化实体
    • 类是定义该实体属性和方法的模板
    • 父类是上级模板,被子类继承
用面向对象的语言可以总结为:

知识check
人类属于动物叫继承 人类是从动物继承而来 这个叫抽象化
我女朋友属于人类叫实例化 对象是从人类实例化而来,叫具体化
油门属于汽车,我的上半身属于我 叫part of 关系,上半身是我的一部分,油门是汽车的一部分
我的女朋友(另一半)属于我 叫调用关系 可以互相提供某些价值
你属于你爸妈 说明来源
顾客的公司名,顾客的家庭住址,电话属于顾客,只是在说明所有权
虽然都是从属关系,
但是是不一样的概念哈!
notion image
notion image
抽象化是从具体事物中提取共通特征以形成模型的过程,
其中,泛化是其典型形式之一。
还是不懂?
notion image
 

面向对象的核心特性

1️⃣ 封装(Encapsulation)カプセル化

  • 定义:把对象的属性(数据)和方法(功能)封装在一起,对外只暴露必要接口。
  • 图中体现
    • “我的对象”有属性:姓名、年龄、体重、技能列表
    • 方法:听()、读()、看()、说()等等
    • 外部对象(比如“我”)通过调用方法获取信息或行为,比如调用我的对象.说("你在想什么呢")会返回"好饿啊!"
    • 但是我不能直接查看其隐私,比如她的前男友列表

2️⃣ 继承(Inheritance)

  • 定义:子类自动拥有父类的属性和方法,可以复用或扩展。
  • 图中体现
    • 动物类 是父类,人类狗类 是子类
    • 动物类有进食()、呼吸()、移动()、繁殖(),人类和狗类自动拥有这些方法

3️⃣ 多态(Polymorphism)

  • 定义:同一个方法在不同对象上可以有不同表现形式。
  • 图中体现
    • 吠叫() 方法:
      • 小黑(狗类)调用 → 返回“汪汪”
      • 其他狗对象调用 → 可以返回不同叫声
    • 看() 方法:
      • 我的对象.看("我家猫会后空翻”)会返回 你家猫描好厉害哦!
      • 大哥的对象.看("我家猫会后空翻”)会返回 你别忘了我可是你大哥的女人哦!

4️⃣ 抽象(Abstraction)

  • 定义:只关注对象的外部行为和特征,不关心内部实现细节。
  • 图中体现
    • “我”调用“我的对象”的方法 读("莎士比亚名言")
    • 不需要知道内部怎么读取文本,只关心返回结果
  • 比喻:你按下咖啡机按钮,不关心水如何加热、咖啡如何滴落,只关心最后得到咖啡。

5️⃣ 对象的独立性

  • 定义:每个对象都是独立的实体,有自己的属性和状态。
  • 图中体现
    • “我”、“我的对象”、“小黑”各自有独立属性:
      • 我:年龄=19、体重=60kg
      • 我的对象:年龄=18、体重=50kg、技能=摄影、跳舞,前男友列表=小张,小王
      • 小黑:年龄=1、体重=5kg、叫声=汪汪
  • 比喻:每个人、每只狗都是独立的个体,有自己的信息和行为能力。

💡 总结表格

特性
定义
图中例子
比喻
封装
属性和方法捆绑,对外只暴露接口
我的对象的方法:拍照()、读()、说话()
手机可以打电话拍照,但内部芯片封装了
继承
子类继承父类属性和方法
人类和狗类继承动物类的进食()、呼吸()
狗和猫都是动物,都会吃饭、呼吸
多态
同方法不同对象表现不同
吠叫() → 小黑:汪汪;说话() → 我的对象:“你在想什么呢”
每个人说“你好”,声音和语气不同
抽象
只关心行为,不关心实现
读() 方法 → 返回莎士比亚名言
按咖啡机按钮得到咖啡,不管内部怎么滴落
独立性
每个对象有自己状态
我、我的对象、小黑各自属性不同
每个人、每只宠物都是独立个体
知识check
notion image
notion image
notion image
notion image
notion image
notion image
notion image
  • 父类声明方法 → “我告诉你能做什么”
  • 子类实现方法 → “我实际怎么做”
  • 动态绑定 → “调用方法的时候,看我实际是什么子类,再执行对应动作”
  • 如果子类没有覆盖父类方法 → 就执行父类的方法
notion image

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标准图,广泛使用
使用示例
- 系统设计文档中说明结构- 面向对象程序的设计- 理解和重构现有系统- 数据库设计(整理实体和属性)
notion image
notion image

オブジェクト図(Object Diagram)

notion image

ユースケース図(Use Case Diagram)

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

アクティビティ図(Activity Diagram)

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

ステートマシン図(State Machine Diagram)

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

シーケンス図(Sequence Diagram)

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

コミュニケーション図(Communication Diagram)

项目
内容
目的
描述对象之间的消息传递及对象间的关系,强调对象间的结构连接和交互顺序。
主要元素
- 对象(Object / Actor):参与交互的实体- 连接(Link):对象之间的关联或通信通路- 消息(Message):通过连接传递的信息或方法调用- 序号(Sequence Number):标示消息的发送顺序
特点
- 强调对象间的结构关系 - 显示消息的发送顺序 - 与时序图类似,但更关注对象关系而非时间轴 - UML标准图,适合分析系统交互和协作
使用示例
- 客户端与服务器交互- 订单处理各对象之间的协作- 系统模块间的调用流程- 用例执行的对象间消息流
notion image
知识check
notion image
notion image
notion image
notion image
notion image
notion image
小南伴你学-応用情報-第10期:企业统治小南伴你学-応用情報-第7期:系统开发之面对过程与数据
Loading...