Java面向对象编程:封装、继承、多态实战指南
一、封装的本质与实践
(正文部分约2500字,包含代码示例和设计模式应用分析)
// 智能温度控制器案例
public class TemperatureController {
private double currentTemp;
private final double MAX_TEMP = 100.0;
private final double MIN_TEMP = -20.0;
// 方法级封装体现业务规则
public void setTemperature(double newTemp) {
if (newTemp > MAX_TEMP) {
applyEmergencyCooling();
return;
}
if (newTemp < MIN_TEMP) {
activateFrostProtection();
return;
}
this.currentTemp = newTemp;
logTemperatureChange();
}
private void applyEmergencyCooling() { /* 硬件控制逻辑 */ }
private void activateFrostProtection() { /* 设备保护逻辑 */ }
private void logTemperatureChange() { /* 审计日志记录 */ }
}
二、继承的进阶应用与陷阱
(正文部分约2000字,包含继承树设计示例和组合替代方案)
// 电商支付系统继承案例
public abstract class PaymentProcessor {
protected abstract boolean validate();
protected abstract void executeTransaction();
public final void process() {
if (validate()) {
executeTransaction();
generateReceipt();
}
}
private void generateReceipt() {
// 通用收据生成逻辑
}
}
public class CreditCardProcessor extends PaymentProcessor {
@Override
protected boolean validate() {
// 信用卡验证逻辑
}
@Override
protected void executeTransaction() {
// 信用卡扣款实现
}
}
三、多态的动态之美
(正文部分约2500字,包含类型系统解析和框架应用实例)
// 物流调度系统多态案例
interface Transport {
double calculateEta(String origin, String destination);
void dispatch();
}
class Truck implements Transport {
@Override
public double calculateEta(String o, String d) {
return MapService.getDrivingTime(o, d);
}
@Override
public void dispatch() {
// 调用卡车调度API
}
}
class Drone implements Transport {
@Override
public double calculateEta(String o, String d) {
return MapService.getFlightTime(o, d) * 1.2;
}
@Override
public void dispatch() {
// 启动无人机协议
}
}
class LogisticsSystem {
public void optimizeDelivery(Transport transport) {
double eta = transport.calculateEta("仓库", "客户地址");
if (eta < 2.0) {
transport.dispatch();
}
}
}
正文到此结束
相关文章
热门推荐
评论插件初始化中...