我的自行车Java程序设置遇到问题

时间:2018-10-30 17:22:55

标签: java

我的任务是创建一个程序,该程序在给定gear (1 - 3)cadence (1-100)的情况下给出自行车的MPH。

  • 一档MPH =节奏/ 12,
  • 2档MPH =踏频/ 6,
  • 三档MPH =步调/ 4。

我们已经设置了一个类,需要运行一个测试程序。到目前为止,这就是我在用用户输入运行循环结构的地方以及我的return语句应该在哪里的情况。

public class Bicycle
{
    private int bike;
    private int gear = 1;
    private int cadence = 1;
    private int speed = 1;

    public void changeGear(int getGear)
    {

        gear = getGear;
    }

    public void changeCadence(int getCadence)
    {
        cadence = getCadence;
    }

    public void MPH(int getMPH)
    {
        speed = getMPH;
    }
}

这是我的考试:

import java.util.Scanner;

public class BicycleTest
{
    public static void main(String[] args)
    {
        Bicycle bike;
        bike = new Bicycle();
    }
}

1 个答案:

答案 0 :(得分:0)

首先,对于实例的属性setget,请使用命名约定(getStuffsetStuff)。那么speed不是您自行车的属性,它会更改并取决于其他属性,在设置新值时,请检查它是否在您要求的范围内。

要获得速度,只需检查gear并返回良好的结果:

public class Bicycle {

    private int bike;
    private int gear;
    private int cadence;

    public int getGear() {
        return gear;
    }    
    public void setGear(int gear) {
        if (gear >= 1 && gear <= 3) {
            this.gear = gear;
        }
    }

    public int getCadence() {
        return cadence;
    }
    public void setCadence(int cadence) {
        if (cadence >= 1 && cadence <= 100) {
            this.cadence = cadence;
        }
    }

    public double getSpeed() {
        if (gear == 1) {
            return cadence / 12.0;
        } else if (gear == 2) {
            return cadence / 6.0;
        } else if(gear == 3{
            return cadence / 4.0;
        }else{
            return 0;
        }
    }
}

要使用此方法:实例化一个Bike,向用户询问gearcadence,您就可以完成:

public static void main(String[] args) {
    Bicycle bike = new Bicycle();
    Scanner sc = new Scanner(System.in);

    System.out.println("Give the gear :");
    bike.setGear(Integer.parseInt(sc.nextLine()));

    System.out.println("Give the cadence :");
    bike.setCadence(Integer.parseInt(sc.nextLine()));

    double speed = bike.getSpeed();
    System.out.println(speed);
}