java习题 求各位大佬帮忙敲下代码!!

行驶速度提醒:

高速公路上行驶的车辆,有最低时速和最高时速的限制,当低于80公里每小时车辆导航系统会发出提醒,当高于120公里每小时时车辆导航系统会发出警告。

编写一个LowSpeedException类,该子类可以创建异常对象,该异常对象调用warn()方法输出“当前时速为xx,请提高速度到80以上!”。

编写一个HighSpeedException类,该子类可以创建异常对象,该异常对象调用warn()方法输出“当前时速为xx,请减速到120以下!”。

编写一个DriveCar类,该类有一个int类型成员driveSpeed,描述驾驶速度,和一个drive(int x)方法,模拟驾驶,参数x模拟加速和减速,x>0表示加速x,x<0表示减速x,如果减速x后速度低于临界值(80)则抛出LowSpeedException异常,当加速x后速度高于临界值(120)则抛出HighSpeedException异常。

程序在主类的main()方法中的try-catch语句的try部分让DriveCar类的实例调用drive(int x) 方法,如果发现速度异常就在try-catch语句的catch部分处理。其他不完整的功能自行添加。

这几个类挺简单的呀,自己先写一下,我问题帮你改进如何。

public class LowSpeedException extends Exception {
    private Integer code;

    public LowSpeedException(Integer code) {
        this.code = code;
        warn(code);
    }

    public static void warn(int res) {
        System.out.println("当前车速为:" + res + ",请提高速度到80以上");
    }
}
public class HighSpeedException extends Exception {
     private Integer code;

    public HighSpeedException(int code) {
        this.code = code;
        warn(code);
    }

    public static void warn(int res) {
        System.out.println("当前车速为:" + res + ",请减速度到120以下");
    }
}
public class DriveCar {
    static int driveSpeed;//驾驶速度

    public static void main(String[] args) {

        System.out.println("请输入小车当前行驶速度:");
        Scanner sc = new Scanner(System.in);
        driveSpeed = sc.nextInt();
        System.out.println("小车当前速度为:" + driveSpeed);
        int x;
        while (true) {
            System.out.println("对小车进行加速(大于0)和减速(小于0)(输入0可不操作):");
            x = sc.nextInt();
            if (0 == x) {
                break;
            }
            drive(x);
            try {
                if (driveSpeed < 80) {
                    throw new LowSpeedException(driveSpeed);
                } else if (driveSpeed > 120) {
                    throw new HighSpeedException(driveSpeed);
                } else {
                    System.out.println("车速正常,请保持...");
                }

            } catch (LowSpeedException | HighSpeedException e) {

            }
        }

    }


    public static int drive(int x) {
        driveSpeed = driveSpeed + x;
        return driveSpeed;
    }

}

 

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y