java - 编写一个 Car 类,其构造函数接受yearModel、品牌和速度(以 MPH 为单位)作为参数

标签 java

因此我们需要编写一个 Car 类,它接受型号、制造商和速度作为参数。我们得到了运行的主要方法,并且只需要编写包含加速(增加 5 英里/小时)和制动(减少 5 英里/小时但永远不会低于 0)的类。

main 方法为我们提供了以下几行代码来设置参数:

Car a = new Car(2008, "Toyota", 0);
Car b = new Car(2017, "Ford", 20);
Car c = new Car(2012, "Volvo", 6);
Car [] test_field = {a, b, c}; 

main中的调用显示为

for(int i = 0; i < test_field.length; i++){
    test_field[i].accelerate();
   }
}
else{
     for(int i = 0; i<test_field.length; i++){
        test_field[i].brake();
}

在编写方法时,当我尝试运行并且我似乎无法弄清楚我的问题时,我不断收到 Car 类中的一个方法无法应用于我的加速和制动方法的给定类型。

我的代码:

public class Car {

private int yearModel;
private String make;
private int speed;

   public Car() {

   }
   public Car(int ym, String m, int sp) {

   yearModel = ym;
   make = m;
   speed = sp;
 } 
   public void setModel(int ym) {
   yearModel = ym;
   }
   public void setMake(String m) {
   make = m;
   }
   public void setSpeed(int sp) {
   speed = sp;

   }


  public int accelerate(Car c) {

  speed = speed + 5;

  return speed;

  }
  public int brake(Car c) {
 speed = speed - 5;

  if (speed < 0) {
  speed = 0;
  return speed;
  }

  else return speed;

  }
}

对于新手编码员的任何输入或见解表示赞赏。

最佳答案

为什么您的加速和制动方法需要在方法签名中包含 Car 对象?

public int Accelerator(Car c)

调用该方法时也不传递 Car 对象。

test_field[i].accelerate();

由于您没有在方法中对 c 执行任何操作,因此可以删除该参数。

应该看起来像这样:

public int accelerate() {
    speed = speed + 5;
    return speed;
}

public int brake() {
    speed = speed - 5;
    if (speed < 0) {
        speed = 0;
        return speed;
    }
    else {
        return speed;
    }
}

关于java - 编写一个 Car 类,其构造函数接受yearModel、品牌和速度(以 MPH 为单位)作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61085952/

相关文章:

java - 日期格式失败

java - 检查 2 个字符串是否包含相同的字符?

java - 如何在我的应用程序中获取 facebook 用户的连接?

java - windows环境下文件路径问题

java - 使用 dom4j 从流中读取单个 XML 文档

java I/O,将数组写入文本文件

java - 如何从私有(private)方法调用数组?

java - 根据 Map 输入从 Collection<Objects> 中提取对象

java - Swagger2 太多相同的注释

java - 多次执行的prepare方法