【问题标题】:renting, showing and returning a car arraylist not working properly租赁、展示和归还汽车阵列列表无法正常工作
【发布时间】:2011-12-16 22:35:06
【问题描述】:

嗯,基本上我有一个必须在一月份完成的任务。我必须创建一个允许客户租车的模拟租赁服务。我基于 ArrayList 的逻辑,使用它的方法来管理我的汽车收藏。

我的代码有一些问题,我的很多方法中的逻辑都不能正常工作。在代码示例中,我包含了showCarrentTheCarreturnCar 方法没有正常工作。 showCar 方法显示所有汽车,尽管在调用该方法时它要求我输入 carNumberrentThecarreturnCar 似乎正在租用/归还所有汽车,而不仅仅是我指定的那辆。

我在下面显示我的课程中的相关代码,如果有人可以帮助我找出我可能出错的地方。我想明确表示我不希望我的家庭作业只是一些指导。谢谢。

显示汽车方法:

public void showCar (int carNumber)
{

    if (cars.size() < 0 ) {
        System.out.println ("Add cars first!!!");
    }
    else if (carNumber < cars.size()) {
        System.out.println(cars.get(carNumber));
    }
    else{
        System.out.println("Error!! This note cannot be shown, because it does not exist!!");
    }
}

租车方式:

public void rentTheCar (int carNumber, String CustomerName, String hireDate, String returnDate, int daysOfHire)
{

    if (cars.size() < 0) {
       System.out.println("Empty list!! Add cars first!!");
    }
    else if (carNumber > cars.size()) {
       System.out.println("This car does not exist!!");
    }
    else {
        for (Car car : cars) {
            int index = 0;
            cars.get (carNumber);
            car.rentTheCar(CustomerName, hireDate, returnDate, daysOfHire);
            index ++;
        }
    } 
}

还车方式:

public void returnCar (int carNumber)
{
    cars.get(carNumber);
    if (cars.size() < 0) {
       System.out.println("Error!! It is impossible to return a car from an empty list");
    }
    else if (carNumber > cars.size()) {
        System.out.println("Error!! Not a valis car!!");
    }
    else {
        for (Car car : cars) {
            car.returnTheCar();
            System.out.println ("The car has been returned correctly");
        }
    }
}

【问题讨论】:

  • 如果列表为空,则它的大小为 0。我会写 cars.size() = cars.size ()"。

标签: java arraylist


【解决方案1】:

那么 ReturnCar 和 RentTheCar 中的 for 循环的目的是什么?

他们在做什么?

以上线索应该会让你走上正轨。

【讨论】:

  • 嘿,非常感谢您的回复!我之前创建了一个汽车类,该类中有两个方法,称为rentTheCar 和returnCar。第一个将参数作为客户名称、租用和返回日期以及租用天数,然后将布尔值设置为 onLoan = true。 returnCar 只是将汽车和之前在租车时输入的参数返回到 "" 任何字符串,0 任何 int 和 false 布尔值。数组列表的目的是做同样的事情,但是只是直接从数组列表创建汽车,而不是每次都创建和对象汽车。
  • 我知道为什么你有一个数组,因为你说的问题是租用所有汽车的汽车,而你在循环中调用它.....
【解决方案2】:

您的showCar 方法看起来不错,您确定它显示了您收藏中的所有汽车吗?至于您的其他两种方法,您正在循环整个集合并在每个元素上调用您的出租操作。您的整个逻辑都基于索引数组,因此请使用您的索引。

http://docs.oracle.com/javase/6/docs/api/java/util/List.html

add(int index, E element) 
          Inserts the specified element at the specified position in this list (optional operation).

get(int index) 
          Returns the element at the specified position in this list.

【讨论】:

  • 您好,非常感谢您的回复,基本上展示车只显示一个数字,基本上我希望它显示汽车的描述,但它显示给我的是一个数字喜欢这辆车@67f31652。
  • 您在 java.lang.Object 上看到了默认 toString() 方法的输出。如果您想查看更具描述性的内容,请在您的 Car 对象中覆盖 toString() 并使其返回更合适的内容。
【解决方案3】:

我认为你应该看看你的 foreach 循环,也许你会在那里找到一两个提示!这一行:

for (Car car : cars) {
    // do something...
}

将其称为 for-each 循环是有原因的。 :) 希望我能帮上忙。

【讨论】:

  • 嘿!感谢您的回复,我现在知道您的意思了! :) 你真的帮了我!我正在为该班的每辆车做同样的事情!(如果这有意义的话):) 谢谢!!!
猜你喜欢
  • 2018-07-25
  • 2023-01-14
  • 1970-01-01
  • 2015-12-14
  • 1970-01-01
  • 1970-01-01
  • 2018-10-07
  • 1970-01-01
相关资源
最近更新 更多