2016-04-28 5 views
-1

PARKINGクラスの2つのオブジェクトがそれぞれP1とP2であるとします。 PARKINGクラスには一意の識別子(UUID)があります。 私はまた、その名前がmycarであるCARクラスのオブジェクトを持っています。オブジェクトをあるコンテナオブジェクトから別のコンテナオブジェクトに移行させる方法。 (ソフトウェアエージェントのようなものです)

私の車は現在P1でビルドされており、現在はP2に移行したいと考えています。私はそのP2のテイクてmycarをしたくない

public class PARKING { 

    public String ID = new String(); 
    ID = UUID.randomUUID().toString(); 
    CAR car; 

    public PARKING(CAR car) { 
     this.car = car; 
    } 
    public PARKING(){ 

     } 
    } 


    public class CAR { 

     public int ID; 
     public String name = new String(); 

    } 

    public static void main(String[] args) { 
     CAR mycar = new CAR(); 
     PARKING P1 = new PARKING(mycar); 
     PARKING P2 = new PARKING(); 
    }  
} 

注:ここでは

はいくつかのコードです。 このような意味です P2.setCAR(P1.getCAR());

私は車そのものをP1の現在のオブジェクトからP2の別のオブジェクトに移行したいと思っています。

私は問題をはっきりと説明してください。 ありがとうございます。

+0

車を動かすパラメータ「駐車場p1、駐車場p2」を取得する方法を作成しますか?あなたはその方法を作ることで何を持っているのですか? – Draken

+1

これは 'Car'への参照を持つ' PARKING'なので、あなたが記述したsetter/getterコンボで、または他の手段でスイッチを処理するのは、そのクラスまでです。パーキングクラスを使用せずに「カー」スイッチを持つことはできません。 – Kayaman

答えて

0

私はあなたのクエリを理解している場合、それはあなたが何をしたい非常に簡単ですが、ここではそれを完了することができ、例示的な方法は次のとおりです。

public void moveCars(PARKING toMoveFrom, PARKING toMoveTo){ 
    //Checking a car can be moved from A to B 
    if (toMoveFrom.car != null && toMoveTo.car == null){ 
     //Put car in B 
     toMoveTo.car = toMoveFrom.car; 
     //Remove car from A 
     toMoveFrom.car = null; 
    } 
    else{ 
     //Either car blocking way or no car in original parking, handle error 
    } 
} 

これは、あなたがPARKING.carプロパティを公開してか、追加したと仮定していますあなたがそれにアクセスできるようにパブリックゲッター/セッター。しかし、あなた自身が移動できるようにするには、Carクラスに駐車場を格納するプロパティを作成し、代わりにそれを変更する必要があります。選択肢はありますが、それはあなた次第です

関連する問題