package com.automobile.parts; /** * 活塞类 - 与引擎是组合关系 * 活塞是引擎的必要组成部分,不能独立于引擎存在 * 展示了多层级组合关系的实现 */ public class Piston { private int id; // 活塞编号 private double diameter; // 活塞直径 private double stroke; // 活塞行程 private boolean isMoving; // 活塞是否在运动 private int position; // 活塞当前位置 /** * 构造方法 - 创建活塞时设置基本属性 * @param id 活塞编号 */ public Piston(int id) { this.id = id; this.diameter = 86.0; // 毫米 this.stroke = 86.0; // 毫米 this.isMoving = false; this.position = 0; // 初始位置 } /** * 活塞开始运动 */ public void move() { this.isMoving = true; System.out.println("活塞 " + id + " 开始运动"); } /** * 活塞停止运动 */ public void stop() { this.isMoving = false; System.out.println("活塞 " + id + " 停止运动"); } /** * 活塞加速运动 * @param rpm 引擎转速,影响活塞运动速度 */ public void moveFaster(int rpm) { if (isMoving) { this.position = rpm % 360; // 模拟活塞位置变化 System.out.println("活塞 " + id + " 加速到 " + rpm + " RPM, 当前位置: " + position + "度"); } } /** * 获取活塞工作状态 * @return 活塞工作状态描述 */ public String getStatus() { return "活塞 " + id + ": " + (isMoving ? "运动中" : "静止") + ", 位置: " + position + "度"; } // Getter 和 Setter 方法 public int getId() { return id; } public void setId(int id) { this.id = id; } public double getDiameter() { return diameter; } public void setDiameter(double diameter) { this.diameter = diameter; } public double getStroke() { return stroke; } public void setStroke(double stroke) { this.stroke = stroke; } public boolean isMoving() { return isMoving; } public int getPosition() { return position; } }