2016-04-28 50 views
-1

假設我有兩個分別爲P1和P2的PARKING類對象。 PARKING類具有唯一標識符(UUID)。 我也有類CAR的對象,它的名字是mycar。如何使對象從一個容器對象遷移到另一個容器對象。 (如軟件代理!)

我的車目前在P1內置,現在想遷移到P2。

下面是一些代碼:

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取mycar。 我的意思是這樣的 P2.setCAR(P1.getCAR());

我想汽車本身從它當前的P1對象移動到另一個P2對象。

我希望我已經清楚地解釋了這個問題。 在此先感謝。

+0

所以,你想創建一個方法,需要參數'停車p1,停車p2,移動汽車之間?用這種方法你有什麼問題? – Draken

+1

由於它是'PARKING'的引用'Car',因此需要該類來處理開關(通過您描述的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屬性public或增加一個公共的getter/setter,所以你可以訪問它。但是,如果您希望汽車能夠自行移動,則需要在存儲停車位的類Car上創建一個屬性,然後通過該屬性進行更改。選擇,但這取決於你

相關問題