2011-12-16 3 views
-5

基本的に私は1月に行わなければならない課題があります。顧客が車を借りることができるモックレンタルサービスを作る必要があります。私は自分の車のコレクションを管理するメソッドを使用して、ArrayListのロジックをオフにしています。レンタル、レンタカーの表示、返却は適切に行われない

私のコードにいくつかの問題があります。私の方法の多くのロジックが正しく動作していません。コードサンプルでは、​​showCarrentTheCarreturnCarのメソッドが含まれています。 showCarメソッドはすべての車を表示しますが、メソッドを呼び出すときにはcarNumberを求められます。 rentThecarreturnCarは、私が指定した車だけでなく、すべての車をレンタル/返却しているようです。

誰かが私が間違っている可能性がある場所を見つけ出す手助けをすることができれば、下のクラスから関連コードを表示しています。私は自分の宿題がちょっとした指導をしたくないことを明確にしたいと思います。ありがとう。

ショーカー方法:

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"); 
     } 
    } 
} 
+1

リストが空の場合、サイズは0です。cars.size()<= 0と書いています。リストもゼロインデックスであるため、 "carNumber> = cars.size()"にする必要があります。 – tobier

答えて

0

あなたshowCar方法は正常に見える、あなたはそのすべての表示確信していますあなたのコレクションの車?あなたの他の2つの方法では、コレクション全体をループし、各要素に対してレンタル操作を呼び出しています。索引配列から論理全体を引き出しているので、索引を使用してください。

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. 
+0

こんにちは、本当にありがとう、あなたの応答のために、基本的にショー車はちょうど私に番号を示しています、そして、私はそれが私に車の説明を見せたいが、それは私にこの車@ 67f31652のような番号です。 – user1102815

+2

あなたはjava.lang.Objectのデフォルトの 'toString()'メソッドからの出力を見ています。もっとわかりやすいものを見たいなら、あなたのCarオブジェクトの 'toString()'をオーバーライドし、より適切な何かを返すようにしてください。 – Perception

1

だからReturnCarとRentTheCarのループのための目的は何ですか?

彼らは何をしていますか?

上記の手がかりはあなたを正しい軌道に乗せるはずです。

+0

お元気ですか?以前は車のクラスを作成しましたが、そのクラスにはrentTheCarとreturnCarという2つのメソッドがあります。最初のパラメータは、顧客の名前と雇用日と雇用日をパラメータとし、ブール値をonLoan = trueに設定します。returnCarは、車をレンタルするときに、以前に入力した車とパラメータを返します。すべての文字列に0を指定すると、int型とfalse型のブール値が返されます。 arraylistの目的は、毎回carを作成するのではなく、arraylistから車を直接作り出すことです。 – user1102815

+0

私はなぜあなたはあなたの記載された問題がすべての車のために呼び出されているレンタルされている配列を持っている知っている、あなたはループ内でそれを呼び出す..... –

0

私はあなたのforeachループを見てみるべきだと思いますが、おそらくヒントが2つあります。このライン:

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

それは各ループFOR-と呼ばれている理由があります。 :) 私は助けてくれました。

+0

ちょっと、ちょっと!あなたの返答をありがとう、私はあなたが今何を意味知っている! :)あなたは実際に私を助けました!私はそのクラスのすべての車が同じことをするようにしています!(それが理にかなっていれば):)ありがとう!!! – user1102815

関連する問題