You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建带加速与制动功能的Car类时出现逻辑错误求助

代码问题排查与修复

核心问题分析

  • 调用空方法:你在CarRun的循环里调用的是accelerateSpeed(),但这个方法内部完全是空的,没有任何加速逻辑,等于没执行任何操作。
  • 加速方法逻辑错误:就算改成调用accelerate(),里面的if (Speed !=0)判断完全不合理——初始速度就是0,这个条件永远不成立,根本不会执行速度递增的代码,所以速度一直停留在0。
  • 额外潜在问题:brake()里的if (Speed !=90)会导致速度变成负数(比如速度为0时还会减5);setSpeed()方法里的speed = speed;是无效赋值;Speed用静态变量会让所有Car实例共享同一个速度,不符合面向对象设计。

修复后的代码

Car类

public class Car {
    // 将静态速度改为非静态,每个车辆实例拥有独立速度
    private int speed = 0;
    private String make = "Ford";
    private int yearModel = 2013;
    
    // 移除未使用的参数i,规范构造方法
    public Car(String n, int model) {   
        make = n;
        yearModel = model; 
    }

    // 改为非静态方法,对应实例的速度
    public int getSpeed() {
        return speed;
    }   

    public String getMake() {
        return make;
    }

    // 规范方法名首字母大写
    public int getYearModel() {
        return yearModel;
    }

    // 修正加速逻辑:添加速度上限(比如90),移除错误判断
    public void accelerate() {
        if (speed < 90) {
            speed += 5;
        }
    }

    // 修正制动逻辑:只有速度大于0时才减速,避免负数
    public void brake() {
        if (speed > 0) {
            speed -= 5;
        }
    }

    // 修正设置速度的逻辑,添加范围校验
    public void setSpeed(int speed) {
        if (speed >= 0 && speed <= 90) {
            this.speed = speed;
        }
    }

    // 移除空的accelerateSpeed方法,避免混淆
}

CarRun类

public class CarRun {
    public static void main(String[] str) {
        // 匹配修改后的构造方法参数
        Car car1 = new Car("Ford", 2013);
        for (int i = 1; i <= 5; i++) {
            // 调用正确的accelerate()方法执行加速
            car1.accelerate();
            // 调用实例的getSpeed()获取当前速度
            System.out.println("Current speed is: " + car1.getSpeed());
        }
        
        for (int j = 1; j <= 5; j++) {
            car1.brake();
            System.out.println("Current speed is: " + car1.getSpeed());
        }       
    }
}

修复后效果

运行代码后,第一次循环会将速度从0逐步提升到25(每次+5,共5次),第二次循环会将速度从25逐步降到0(每次-5,共5次),完全符合预期。

内容的提问来源于stack exchange,提问作者Keel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 22:01:16