From cc3c138ffb70ad54ab2c6d6aaa1dfd3eecf1af93 Mon Sep 17 00:00:00 2001 From: pc9pizjb6 <122855890@qq.com> Date: Sun, 26 Oct 2025 18:45:45 +0800 Subject: [PATCH] ADD file via upload --- Car.java | 199 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 Car.java diff --git a/Car.java b/Car.java new file mode 100644 index 0000000..ac9ed0c --- /dev/null +++ b/Car.java @@ -0,0 +1,199 @@ +package com.car.model; + +import java.util.ArrayList; +import java.util.List; + +/** + * 汽车类 - 主类,包含多个组件的组合关系 + */ +public class Car { + private String brand; + private String model; + private String year; + + // 组合关系组件 + private SteeringWheel steeringWheel; // 方向盘 + private List seats; // 座椅列表 + private Engine engine; // 引擎 + private Transmission transmission; // 变速箱 + private ElectronicSystem electronicSystem; // 电子系统 + private List wheels; // 车轮列表 + + /** + * 构造方法 + * @param brand 品牌 + * @param model 型号 + * @param year 年份 + */ + public Car(String brand, String model, String year) { + this.brand = brand; + this.model = model; + this.year = year; + + // 初始化基础组件 + this.steeringWheel = new SteeringWheel("Leather", "380mm", true); + this.seats = new ArrayList<>(); + this.engine = new Engine("V6", 300, 3.5, 6); + this.transmission = new Transmission("Automatic", 8, true); + this.electronicSystem = new ElectronicSystem("v1.0"); + this.wheels = new ArrayList<>(); + + // 初始化座椅 + seats.add(new Seat("Driver", "Leather", true, true)); + seats.add(new Seat("Passenger", "Leather", true, true)); + + // 初始化车轮 + for (int i = 0; i < 4; i++) { + wheels.add(new Wheel("18 inch", "All-season", 32)); + } + } + + /** + * 启动汽车 + */ + public void start() { + System.out.println(brand + " " + model + " starting..."); + System.out.println("Engine started: " + engine.getType()); + System.out.println("Electronic systems initialized."); + } + + /** + * 停止汽车 + */ + public void stop() { + System.out.println(brand + " " + model + " stopping..."); + System.out.println("Engine stopped."); + } + + /** + * 更换方向盘 + * @param newSteeringWheel 新的方向盘 + */ + public void replaceSteeringWheel(SteeringWheel newSteeringWheel) { + this.steeringWheel = newSteeringWheel; + System.out.println("Steering wheel replaced."); + } + + /** + * 更换座椅 + * @param index 座椅索引 + * @param newSeat 新的座椅 + * @return 是否更换成功 + */ + public boolean replaceSeat(int index, Seat newSeat) { + if (index >= 0 && index < seats.size()) { + seats.set(index, newSeat); + System.out.println("Seat at position " + index + " replaced."); + return true; + } + return false; + } + + /** + * 更换车轮 + * @param index 车轮索引 + * @param newWheel 新的车轮 + * @return 是否更换成功 + */ + public boolean replaceWheel(int index, Wheel newWheel) { + if (index >= 0 && index < wheels.size()) { + wheels.set(index, newWheel); + System.out.println("Wheel at position " + index + " replaced."); + return true; + } + return false; + } + + /** + * 运行汽车诊断 + * @return 诊断结果 + */ + public boolean runDiagnostics() { + System.out.println("Running diagnostics for " + brand + " " + model + "..."); + boolean engineOk = true; // 简化处理 + boolean electronicOk = electronicSystem.runDiagnostics(); + + // 检查轮胎气压 + boolean wheelsOk = true; + for (int i = 0; i < wheels.size(); i++) { + if (!wheels.get(i).checkPressure()) { + System.out.println("Wheel " + i + " pressure issue detected!"); + wheelsOk = false; + } + } + + boolean overallStatus = engineOk && electronicOk && wheelsOk; + System.out.println("Diagnostics completed. Overall status: " + (overallStatus ? "OK" : "Issues detected")); + return overallStatus; + } + + // getter and setter methods + public String getBrand() { + return brand; + } + + public void setBrand(String brand) { + this.brand = brand; + } + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model; + } + + public String getYear() { + return year; + } + + public void setYear(String year) { + this.year = year; + } + + public SteeringWheel getSteeringWheel() { + return steeringWheel; + } + + public void setSteeringWheel(SteeringWheel steeringWheel) { + this.steeringWheel = steeringWheel; + } + + public List getSeats() { + return new ArrayList<>(seats); + } + + public Engine getEngine() { + return engine; + } + + public void setEngine(Engine engine) { + this.engine = engine; + } + + public Transmission getTransmission() { + return transmission; + } + + public void setTransmission(Transmission transmission) { + this.transmission = transmission; + } + + public ElectronicSystem getElectronicSystem() { + return electronicSystem; + } + + public void setElectronicSystem(ElectronicSystem electronicSystem) { + this.electronicSystem = electronicSystem; + } + + public List getWheels() { + return new ArrayList<>(wheels); + } + + @Override + public String toString() { + return "Car [brand=" + brand + ", model=" + model + ", year=" + year + ", engine=" + engine + ", transmission=" + transmission + "]"; + } +} \ No newline at end of file