我正在使用称为Car的方法创建名为TotalPrice的类,该方法将采用Car的数组并计算列表的总数。我已经实现了客户端方法totalPrice,该方法接受汽车列表(ArrayUnsortedList carList),并返回等于列表中汽车总成本的整数。

我坚持编写测试驱动程序,以便可以测试实际的Car类程序。

这是我的Car类代码:

public class Car
{
   int year;
   String make;
   String model;
   int price;

   public Car(int year, String make, String model, int price) {
      this.year = year;
      this.make = make;
      this.model = model;
      this.price = price;
   }

   public int getYear() {
      return this.year;
   }

   public String getMake() {
      return make;
   }

   public String getModel() {
      return model;
   }

   public int getPrice() {
      return this.price;
   }

   public static int totalPrice(ArrayUnsortedList carList) {
      int totalPrice = 0;
      for(int i=carList.size(); i>0; i--)
      {

         totalPrice += ((Car)carList.getNext()).getPrice();
      }
      return totalPrice;
   }
}


这是我的试驾课:

import java.util.Scanner;
import java.util.ArrayList;

public class CarList{

   public static void main (String [] args) {

      ArrayUnsortedList<Car> carList = new ArrayUnsortedList<Car>();
      Car car1, car2;

      car1 = new Car(2016, "BMW", "M4", 65700);
      carList.add(car1);
      car1 = new Car(2016, "Mercedes-Benz", "C300", 38950);
      carList.add(car1);
      car2 = new Car(2016, "Lexus", "GS F", 84440);
      carList.add(car2);

      System.out.println(Car.totalPrice(carList));

   }

}


更新********

我必须使用给定的ArrayUnsortedList。

以下是其余的代码:GITHUB

更新
现在我得到了错误的totalPrice?

65700 + 38950 + 84440 = 189090

但我得到253320 ???

 ----jGRASP exec: java CarList

253320

 ----jGRASP: operation complete.

最佳答案

对于totalPrice函数本身的代码,我将使用ArrayUnsortedList.size()ArrayUnsortedList.getNext()浏览列表内容。这个列表API很糟糕(我想是故意的),可以理解,您在这里遇到了一些困难。学习快速浏览Java类,仅查看函数头以确定哪个函数有用。

int totalPrice = 0;
for(int i=carList.size(); i>0; i--)
{
  totalPrice += carList.getNext().getPrice();
}
return totalPrice;


您会发现我没有在循环内引用i;那是因为没有ArrayUnsortedList的方法需要索引。因此,我仅依靠i来确保对ArrayUnsortedList.getNext()进行了多次调用。

在其他主题上


我认为总结汽车价格不是汽车课的工作。 totalPrice应该将imo作为ArrayUnsortedList上的函数实现,或者仅按测试类中的方式执行。
我认为Java环境中的测试应与JUnit一起运行。这可能是您很快就会遇到的主题,但是如果您已经使用过JUnit,那么测试运行人员应该使用它。

关于java - 我如何从carList中获得总价?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35824740/

10-10 08:54