类与对象是项目结构清晰、代码易扩展、维护可控的关键,需将抽象与实例化思维落实到开发中:类作为职责明确的业务模块模板(如User类),对象则是运行时承担具体任务的“活”实例,二者共同支撑封装、继承、多态等设计原则落地,并应避免过程式误用。

类与对象不是纸上概念,它们直接决定项目结构是否清晰、代码是否易扩展、维护成本是否可控。真正用好,关键在于把“抽象”和“实例化”的思维落到具体开发环节中。
类作为可复用的业务模块模板
在项目里,类对应的是一个有明确职责的业务单元。比如用户管理模块,不写一堆零散方法,而是定义 User 类:封装 id、name、role 等字段,提供 activate()、deactivate() 等行为方法。这样,登录、权限校验、后台列表等不同功能都能基于同一个类操作,避免状态散落、逻辑重复。
- 类名用名词(Order、PaymentStrategy),体现它代表什么实体或角色
- 属性尽量私有(private),通过 getter/setter 或专用方法暴露必要接口
- 把通用校验、初始化逻辑放进构造方法,确保每个对象一创建就处于合法状态
对象是运行时的真实业务参与者
对象不是静态数据容器,而是承担具体任务的“活”实例。例如下单流程中:new Order() 创建订单对象,order.addItem(item) 添加商品,order.calculateTotal() 计算金额,order.submit() 提交——整条链路由一个对象串联完成,状态随方法调用逐步演进。
- 每个请求、每次事件处理,都应生成独立对象(如 HttpRequestContext),隔离数据,避免线程间干扰
- 不要用静态变量存业务状态,否则多个对象会互相覆盖;该属于对象的,就让它属于对象
- 对象生命周期要明确:用完即弃,或交给 Spring 管理作用域(prototype / singleton)
用类与对象支撑设计原则落地
封装、继承、多态这些术语,本质是靠类与对象的组织方式来实现的:
立即学习“Java免费学习笔记(深入)”;
- 封装:把数据库连接细节藏在 DatabaseClient 类内部,对外只暴露 query() 和 update() 方法
- 继承:定义 Notification 抽象类,派生出 SmsNotification、EmailNotification,共用 send() 流程但各自实现发送逻辑
- 多态:支付场景中,pay(PaymentMethod method) 方法接收任意子类对象,运行时自动调用微信或支付宝的 process(),无需 if-else 判断类型
常见误用及改进方向
很多项目初期看似用了类和对象,实则只是“换壳写过程式代码”,比如:
- 所有字段 public,到处直接修改 user.name = "xxx",失去约束力
- 一个类塞几十个方法,既管用户又管日志还管导出,违背单一职责
- 反复 new 同一类却传入几乎相同参数,说明缺少工厂类或构建器模式
- 用 Map<String, Object> 代替对象,导致编译期无检查、IDE 无提示、后期难重构
把这些点改过来,类与对象才真正开始驱动项目质量提升。


















