面向对象编程是一种将现实世界建模进代码的思维方式,核心是类与对象、封装、继承、多态四大特性,强调边界清晰、职责明确、可独立演化的模块设计。

面向对象编程(OOP)不是一套语法技巧,而是一种把现实世界“建模”进代码的思维方式。它不从“程序该一步步做什么”出发,而是先想“系统里有哪些东西?它们各自有什么特征、能干什么、彼此怎么配合?”——比如设计一个订单系统,你不会先写“查库存→扣库存→生成订单→发短信”,而是先定义用户、商品、订单这些对象,再让它们各司其职、互相协作。
类与对象:模板和具体实例的关系
类是抽象的蓝图,对象是具体的个体。就像“汽车”是一个类(有品牌、排量、启动方法),而你名下那辆红色Model Y就是一个对象。
- 类中定义属性(如String name)和方法(如void speak()),描述一类事物的共性
- 用new Person()创建对象,每个对象拥有独立的状态(比如两个Person对象可以有不同的name值)
- 对象之间通过调用方法通信,而不是直接操作彼此的内部数据
封装:给对象装上“门禁系统”
封装不是单纯把字段设成private,而是有意识地划分“谁可以碰”和“谁只能看”。它的核心是接口与实现分离。
- 把敏感字段(如账户余额)设为private,外部不能直接读写
- 提供public的getter/setter方法,在里面加入校验逻辑(比如余额不能设为负数)
- 即使将来把存储方式从int改成BigDecimal,只要接口不变,调用方代码完全不用改
继承:建立可复用的层级关系
继承解决的是“is-a”关系的代码复用,不是为了省几行代码而硬套,关键在语义合理。
立即学习“Java免费学习笔记(深入)”;
- 子类用extends继承父类,自动获得非私有属性和方法
- 子类可以添加自己独有的功能(如Student类加study()),也可以重写父类方法(如Animal的makeSound()被Dog重写为“汪汪”)
- Java只支持单继承,但一个类可以实现多个接口,这是更灵活的“能力组合”方式
多态:同一句指令,不同对象各干各的
多态让代码更松耦合、更易扩展。你不需要知道具体是哪个对象,只要它符合约定,就能正常工作。
- 前提:有继承或实现关系 + 方法重写(override)+ 父类/接口类型的引用指向子类对象
- 例如:Animal a = new Dog(); a.makeSound(); 运行时自动调用Dog版本
- 新增Cat类时,只要它也继承Animal并重写makeSound(),原有使用Animal的地方全都不用动
基本上就这些。OOP的价值不在语法本身,而在于它帮人把复杂系统拆解成边界清晰、职责明确、可独立演化的模块。写得对不对,关键看类是不是真代表了一个“东西”,方法是不是这个“东西”自然该做的事。











