2016-05-08 4 views
0

私はJAXでOOPを学ぼうとしています。私は簡単なOOPベースのコンソールアプリケーションを作りたがっていました。アプリケーション全体は、車とガレージという2つのクラスに過ぎません。OOPの2つのクラス間の相互作用

public class Garage { 
    private int capacity; 


} 

そして、これは私の車のクラスである:

これは私のガレージクラスである私にはわからない何

public class Car { 
    private String type; 
    private String color; 

    public Auto(String type, String color){ 
     this.color = color; 
     this.type = type; 
    } 

    public String getColor(){ 
     return color; 
    } 

    public String getType(){ 
     return type; 
    } 

    public void Park(Garage garage){ 

    } 

} 

は彼らが互いの間でやり取りようにする方法です。つまり、Park()メソッドの作成方法はわかりません。この方法では、車をガレージに簡単に駐車する必要があるので、後でガレージに駐車したすべての車を書き留めることができます。

+0

をスタイルは、あなたのメソッドは小文字で始める必要があります。 –

答えて

1

ガレージクラスでは、ガレージ内の車を追跡するためのリストを追加できます。

private List<Car> carsParked; 


//just using arraylist as an example you could use any other of list or even a set if you so wish 
public Garage() { 

    carsParked = new ArrayList<>(); 
} 

してから言うaddCarメソッドを使用して、あなたのガレージに車を追加します。

public void addCar(Car c) { 

    carsParked.add(c); 
} 

Carクラスであなたの公園法では、ような何か:の問題として

public void park(Garage g) { 

     g.addCar(this); 
} 
0

あなたの車庫に車を保管する必要があります。あなたは(2と言う)事前にあなたのガレージの能力を知っていた場合は、その内部に「ハード・コード」の車でした:

class Garage { 
    Car slot1; 
    Car slot2; 
} 

void Park(Garage g) { 
    if (g.slot1 == null) { 
     g.slot1 = this; 
    } else if (g.slot2 == null) { 
     g.slot2 = this; 
    } 
} 

あなたが出力したい場合は、あなたのガレージ内のすべての車は、あなたがテストして行うことができます各スロットはNULLになります(そして、ヌル以外のスロットだけが印刷されます)。

これは非常に良い解決策ではありません。

  • 事前にスロット数がわからない場合、あなたはすべてでそれを使用することはできませんいずれか、またはあなたは大きなを作成することを余儀なくされるだろうワーストケースをカバーするスロット数。
  • 車庫の容量が将来変更される場合は、を手動でに追加する必要があります。また、スロット3/4/...をガレージクラスに追加するだけでなく、どこにガレージが使われています。
  • おそらく、あなたの車が駐車されている特定のスロットは気にしませんが、あなたのガレージに含まれる車に興味があります。

この目的のために、私たちはJavaで 'Collections'を持っています。それらは、あるタイプの任意の数のオブジェクトを1つの変数に格納することを可能にします。 1つの例はLinkedListです。私はあなたがそれを使用する方法について始めましょう:

class Garage { 
    LinkedList<Car> parkedCars; 
} 

は今、あなたはガレージのコンストラクタで

  1. 初期parkedCarsに持っています。
  2. Car.Park内のLinkedList.Addメソッドを呼び出すことによって、車をパークする。

これらの2つの問題を解決したら、同じ車を複数回連続して駐車するとどうなるか考えてみましょう。この結果が望まれますか? HashSetをご覧ください。

関連する問題