面向对象编程 (Object-Oriented Programming, OOP) 是一种基于“对象”概念的编程范式,将数据(属性)与操作数据的函数(方法)封装在一起,作为程序的基本单元。
- 类 (Class):对象的蓝图或模板(如“狗”这个物种)。
- 对象 (Object):类的具体实例(如“你家那只叫旺财的狗”)。
核心直觉
OOP 的本质是模拟现实世界。它不再关注“第一步做什么,第二步做什么”(面向过程),而是思考“系统中有哪些角色(对象),它们各自有什么能力,它们之间如何交互”。
核心特性
- 封装 (Encapsulation):隐藏内部实现细节,仅通过公共接口暴露功能,确保数据安全。
- 继承 (Inheritance):允许子类复用父类的代码,建立“属于 (is-a)”的层级关系。
- 多态 (Polymorphism):同一接口在不同对象下有不同的表现形式(如:所有动物都能“叫”,但猫是喵,狗是汪)。
- 抽象 (Abstraction):提取事物的核心特征,忽略不相关的细节。
优缺点
- 优点:易维护、易复用、易扩展,适合大型复杂系统。
- 缺点:性能开销略大,设计复杂度高。