第三章:面向对象编程 (OOP)

📖 本章内容

本章将学习 Python 面向对象编程的核心概念,包括:

  1. 类和对象基础 (01_classes_objects.py)
  2. 属性和方法 (02_attributes_methods.py)
  3. 继承和多态 (03_inheritance.py)
  4. 封装和访问控制 (04_encapsulation.py)
  5. 特殊方法和运算符重载 (05_special_methods.py)
  6. 设计模式入门 (06_design_patterns.py)

🎯 学习目标

完成本章后,您将能够:

  • ✅ 理解面向对象编程的基本概念
  • ✅ 设计和实现自己的类
  • ✅ 掌握继承、封装、多态三大特性
  • ✅ 使用特殊方法定制类的行为
  • ✅ 应用常见的设计模式
  • ✅ 编写可维护和可扩展的代码

🏗️ OOP 核心概念

四大支柱

  1. 封装 (Encapsulation) - 数据和方法的绑定
  2. 继承 (Inheritance) - 代码重用和扩展
  3. 多态 (Polymorphism) - 同一接口的不同实现
  4. 抽象 (Abstraction) - 隐藏复杂性,暴露简单接口

关键术语

  • 类 (Class) - 对象的蓝图或模板
  • 对象 (Object) - 类的实例
  • 属性 (Attribute) - 对象的数据
  • 方法 (Method) - 对象的行为
  • 构造函数 - 初始化对象的特殊方法

📚 学习路径

基础概念 → 类设计 → 继承关系 → 封装控制 → 特殊方法 → 设计模式

🚀 快速开始

运行单个示例

# 运行第一课:类和对象基础
python 01_classes_objects.py

# 运行第二课:属性和方法
python 02_attributes_methods.py

# 运行第三课:继承和多态
python 03_inheritance.py

# 运行第四课:封装和访问控制
python 04_encapsulation.py

# 运行第五课:特殊方法和运算符重载
python 05_special_methods.py

# 运行第六课:设计模式入门
python 06_design_patterns.py

运行所有示例

# 交互式运行所有课程
python run_all.py

📋 章节概览

第1课:类和对象基础

  • 类的定义和基本语法
  • 对象的创建和使用
  • 构造函数 __init__
  • 实例属性和类属性
  • 实例方法、类方法和静态方法
  • 银行账户和计算器实例

第2课:属性和方法高级特性

  • 属性装饰器 (@property)
  • 私有属性和方法
  • 特殊方法 (魔术方法)
  • 方法重载和多态
  • 描述符和元类基础
  • 学生管理系统实例

第3课:继承和多态

  • 单继承和多重继承
  • 方法解析顺序 (MRO)
  • 方法重写和 super()
  • 抽象基类 (ABC)
  • 多态的实现和应用
  • 动物管理系统实例

第4课:封装和访问控制

  • 封装的概念和重要性
  • 私有属性和方法的实现
  • 属性装饰器的高级用法
  • getter 和 setter 方法
  • 访问控制的最佳实践
  • 智能设备和用户账户实例

第5课:特殊方法和运算符重载

  • 特殊方法(魔术方法)概述
  • 对象创建和销毁控制
  • 字符串表示方法定制
  • 算术和比较运算符重载
  • 容器类型方法实现
  • 复数和矩阵类实例

第6课:设计模式入门

  • 设计模式的概念和分类
  • 单例模式的多种实现
  • 工厂模式和抽象工厂
  • 观察者模式的事件处理
  • 装饰器模式的功能扩展
  • 策略模式的算法切换
  • 文档处理系统综合实例

💡 最佳实践

  1. 命名规范

    • 类名使用 PascalCase (如 StudentManager)
    • 方法和属性使用 snake_case (如 get_name)
  2. 设计原则

    • 单一职责原则 (SRP)
    • 开闭原则 (OCP)
    • 里氏替换原则 (LSP)
    • 接口隔离原则 (ISP)
    • 依赖倒置原则 (DIP)
  3. 代码组织

    • 相关的类放在同一个模块
    • 使用文档字符串描述类和方法
    • 合理使用私有属性和方法
    • 遵循设计模式的最佳实践

🔧 学习建议

  1. 循序渐进 - 按顺序学习,每个概念都建立在前面的基础上
  2. 动手实践 - 运行每个示例,修改代码观察结果
  3. 理解原理 - 不仅要知道怎么做,更要理解为什么这样做
  4. 应用实践 - 尝试用学到的概念解决实际问题
  5. 代码重构 - 用面向对象的思想重构之前的代码

准备好进入面向对象的世界了吗? 🚀

上次更新:
贡献者: Joe