2017-10-18 23 views
-6

我正在學習Java,並且我已經有了一個用Java編寫郵資系統的任務。繼承人我的任務:如何通過Java中的參數傳遞變量?

「實現一個方法public booelan updateTrackingHistory(String datetime,String location),它允許更新包裹從發件人到收件人的跟蹤歷史記錄,如下所示。 如果沒有爲包裹設置包裹大小,或者包裹已經發送,則該方法應該立即返回false 否則,該方法應構造一個新的跟蹤條目,註明日期/時間和位置,之後新跟蹤條目應附加到新行的跟蹤歷史記錄中 跟蹤歷史記錄更新後,方法應返回true,表示跟蹤更新已成功記錄。

這就是我迄今爲止編寫的所有代碼,但我在構建新的跟蹤條目時遇到了一些困難,不確定如何繼續此方法。在這個代碼中的最後一個方法是Im卡住的地方。

public class parcel { 

//Instance Variables 
//The info we need to keep track of 
private String parcelNumber; 
private String senderName; 
private String returnAddress; 
private String recipientName; 
private String deliveryAddress; 
private String contactNumber; 
private String satchelSize; 
private boolean deliveryComplete; 
private String trackingHistory; 

//Constructors 

public parcel (String parcelNumber, String senderName, String returnAddress, String recipientName, 
     String deliveryAddress, String contactNumber, String trackingHistory) { 

    this.parcelNumber = parcelNumber; 
    this.senderName = senderName; 
    this.returnAddress = returnAddress; 
    this.recipientName = recipientName; 
    this.deliveryAddress = deliveryAddress; 
    this.contactNumber = contactNumber; 
    this.trackingHistory = ""; 

} 

//Getters 
public String getparcelNumber() { 

    return parcelNumber; 
} 

public String getrecipientName() { 

    return recipientName; 
} 

public String getdeliveryAddress() { 

    return deliveryAddress; 
} 

public String getcontactNumber() { 

    return contactNumber; 
} 

//Helper Method. 
public int calculatePostageCost() { 
    int postCost = 0; 
    int trackingFee = 5; 

    if(satchelSize.equals("Small") || satchelSize.equals("small")) 
     postCost = trackingFee + 10; 

    else if(satchelSize.equals("Medium") || satchelSize.equals("medium")) 
     postCost = trackingFee + 13; 

    else if(satchelSize.equals("Large") || satchelSize.equals("large")) 
     postCost = trackingFee + 17; 


    return postCost; 
} 

//Method 
public int selectSatchel(int parcelLength, int parcelWidth) { 

    if(satchelSize != null) 
     return -1; 

    if(parcelLength > 500 || parcelWidth > 400) 

     return 0; 

    else { 

    //code for finding out smallest parcel size it will fit in 
    return calculatePostageCost(); 

    } 
} 

public boolean updateTrackingHistory(String datetime, String location) { 

    if(satchelSize == null || satchelSize.isEmpty()) 
    { 
     return false; 
    } 
    //Check if parcel has already been delivered 
    else if(trackingHistory != null) { 

    return false; 

    } 


} 
+0

在構造函數中,而不是'this.trackingHistory = 「」;''寫= this.trackingHistory trackingHistory' –

+0

下次請減少空格和大小的類名和構造函數。 – LenglBoy

+0

「_我有點卡在構建一個新的跟蹤條目,並不確定如何繼續這種方法_」...什麼是問題?注意你的curren方法不會被編譯,因爲你不會在每種情況下都返回一個值。 – AxelH

回答

-2

確定,但我主要關注的是這種方法在這裏基於任務:

public boolean updateTrackingHistory(String datetime, String location) { 

if(satchelSize == null || satchelSize.isEmpty()) 
{ 
    return false; 
} 
//Check if parcel has already been delivered 
else if(trackingHistory != null) { 

return false; 

} 


} 
+0

首先trackingHistory!= null在您將trackingHistory初始化爲構造函數中的空字符串後不會做太多工作。你有一個布爾型字段deliveryComplete,這將是一個很好的候選者,用於檢查是否有交付。問題依然存在,以及如何確定。您的問題沒有明確指定交付狀態的確定方式。在updateTrackingHistory中,您可以檢查提供的位置是否等於deliveryAddress,將deliveryComplete布爾值設置爲true。 –