2013-05-25 32 views
-4

我真的需要這個Java類幫助值:你怎麼返回Java函數

我班如下:

public class Date { 

    // fields 

    private int month; 

    private int day; 

    private int year; 

    // constructor 

    public Date(int month, int day, int year){ 

     this.month = month; 

     this.day = day; 

     this.year = year; 

    } 

    public void setMonth(int month){ 

     this.month = month; 

    } 


    public void setDay(int day){ 

     this.day = day; 

    } 


    public void setYear(int year){ 

     this.year = year; 

    } 

    public int getMonth(){ 

     return month; 

    } 

    public int getDay(){ 

     return day; 

    } 

    public int getYear(){ 

     return year; 

    } 

    public String displayDate(){ 

     return month + "/" + day + "/" + "/" + year; 

    } 

public int add(int n) 
    { 
     if (n <= 20) 
      { 
       if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12) 
        { 
         if ((day+n > 0) && (day+n <=31)) 
          day= day+n; 
         else 
          month +=1; 
         if(month>12) 
          year+=1; 
         } 
      if (month==4 || month==6 || month==9 || month==11) 
       { 
        if ((day+n >0) && (day+n <=30)) 
         day= day+n; 
        else 
         month+= 1; 
        if (month>12) 
         year+=1; 
       } 
      }    
    } 
} 

當我運行此我得到一個錯誤失蹤return語句添加方法?這種方法應該在日,月和年中添加幾天(n)。任何想法如何解決這個問題?

+0

Duplicated:http://stackoverflow.com/questions/16754593/why-wont-this-return-method-compile –

+0

如何返回的東西?在這種方法中不存在回報 – greedybuddha

+2

誇大這個班級有多糟糕是不可能的。事實上,你已經重載了java.lang.Date類的名稱將會讓所有使用你的代碼的人感到困惑。你的實現很糟糕。 – duffymo

回答

4
public int add(int n) 

如果它不返回任何東西,那麼它的返回類型應該是void

public void add(int n) 
2

更改返回類型爲void。

編輯:

或者,如果你想返回Date對象:

public Date add(int n) 
{ 
    Date d = new Date(); 
    d.month = this.month; 
    d.year = this.year; 
    d.day = this.day; 

    if (n <= 20) 
     { 
      if (d.month==1 || d.month==3 || d.month==5 || d.month==7 || d.month==8 || d.month==10 || d.month==12) 
       { 
        if ((d.day+n > 0) && (d.day+n <=31)) 
         d.day= d.day+n; 
        else 
         d.month +=1; 
        if(d.month>12) 
         d.year+=1; 
        } 
     if (d.month==4 || d.month==6 || d.month==9 || d.month==11) 
      { 
       if ((d.day+n >0) && (d.day+n <=30)) 
        d.day= d.day+n; 
       else 
        d.month+= 1; 
       if (d.month>12) 
        d.year+=1; 
      } 
     } 
    return d;    
} 

或使用Java日曆類,會做這一切爲您服務。

+0

它不能無效,我需要在添加天數後返回最終日期。我不知道該怎麼做。 – user1471980

+0

Gotcha。在這種情況下,返回類型應該是您自己的Date類。在add()方法中構造一個新實例。將'this'對象的月份,日期和年份字段複製到您的新對象中。然後執行添加邏輯,修改新對象,並返回新對象。 – Tap