第20天:面向对象编程应用

📅 2026/7/12 7:45:14 👁️ 阅读次数 📝 编程学习
第20天:面向对象编程应用

Python学习100天(从入门到精通系列文章)


文章目录

  • Python学习100天(从入门到精通系列文章)
  • 前言
  • 一、扑克游戏案例
    • 1.1 需求分析
    • 1.2 枚举类型定义花色
    • 1.3 定义牌类
    • 1.4 定义扑克类
    • 1.5 定义玩家类
    • 1.6 运算符重载
  • 二、工资结算系统案例
    • 2.1 需求分析
    • 2.2 抽象基类设计
    • 2.3 子类实现
    • 2.4 完成工资结算系统
  • 总结

前言

在前面的文章中,我们已经系统学习了面向对象编程的基础知识和进阶概念。今天,我们将通过两个经典案例——扑克游戏和工资结算系统,把抽象的面向对象理论转化为实际的编程能力。这两个案例将串联起之前学过的 Python 知识,帮助你真正掌握面向对象编程的精髓。


一、扑克游戏案例

1.1 需求分析

说明:简单起见,我们的扑克只有52张牌(没有大小王),游戏需要将 52 张牌发到 4 个玩家的手上,每个玩家手上有 13 张牌,按照黑桃、红心、草花、方块的顺序和点数从小到大排列,暂时不实现其他的功能。

使用面向对象编程方法,首先需要从问题的需求中找到对象并抽象出对应的类。我们可以从需求的描述中找出名词和动词:

  • 名词→ 对象或对象的属性(牌、扑克、玩家)
  • 动词→ 对象的行为(洗牌、发牌、摸牌、整理)

类和类之间的关系可以粗略地分为:

  • is-a 关系(继承)
  • has-a 关系(关联):一副扑克有(has-a)52 张牌
  • use-a 关系(依赖):玩家使用了(use-a)牌

</