面向对象设计(OOP)核心思想与 Java 实践总结

面向对象设计(OOP)核心思想与 Java 实践总结 一、为什么要面向对象设计在实际的软件开发中系统会不断迭代、需求持续变化如果代码耦合度高、职责混乱维护成本会急剧上升。面向对象设计的目标是降低耦合、提高复用、增强可扩展性和可维护性二、面向对象的四大基本特性1.封装将对象的属性和行为封装在类中对外只暴露必要的接口。实现的方式使用private修饰成员变量和通过public方法getter/setter访问public class User { private String username; public String getUsername() { return username; } }防止外部随意修改内部数据、提高代码安全性和可维护性2.继承、子类继承父类的属性和方法实现代码复用。public class Person { protected String name; } public class Student extends Person { private int score; }提高代码复用性、建立清晰的层次结构但是Java 只支持单继承过度继承会导致耦合度升高3.多态同一接口不同实现同一方法调用表现出不同的行为。public class Animal { public void speak() { System.out.println(animal); } } public class Dog extends Animal { Override public void speak() { System.out.println(dog); } } Animal animal new Dog(); animal.speak(); // dog面向接口编程、提高系统扩展性多态的继承条件继承或接口实现、方法重写、父类引用指向子类对象3.抽象提取事物的共同特征忽略不重要的细节。实现方法抽象类abstract class、接口interfacepublic interface PayService { void pay(); } public class AliPayService implements PayService { public void pay() { System.out.println(支付宝支付); } }补充说明面向对象 ≠ 面向类常见误区面向对象不是简单地“把代码写成类”很多初学者以为用了 class写了 getter / setter就是面向对象实际上面向对象强调的是【职责划分】和【对象之间的协作】而不是类的数量。组合优于继承在实际开发中优先使用组合而不是继承class Engine {} class Car { private Engine engine; // 组合 }原因继承耦合度高、组合更灵活便于扩展和替换在 Java 后端开发中面向对象设计几乎无处不在- Controller负责请求分发单一职责- Service负责业务逻辑- DAO / Mapper负责数据访问面向对象不是语法而是一种解决复杂问题的设计思想。