我写了一个java方法来在几天,几个月和几年之间导航。这是一个方法的示例:
public MyDate nextMonth(){
if (month<12){
month++;
setDay(1);
return MyDate();
}
else
nextYear();
return MyDate();
}
MyDate是班级名称。构造函数如下所示:
public MyDate(int year, int month, int day) {
setYear(year);
setMonth(month);
setDay(day);
}
该方法应该返回如下值:
MyDate d1 = new MyDate(2012, 2, 28);
System.out.println(d1); // Tuesday 28 Feb 2012
System.out.println(d1.nextDay()); // Wednesday 29 Feb 2012
System.out.println(d1.nextMonth()); // Thursday 1 Mar 2012
System.out.println(d1.nextYear()); // Tuesday 1 Jan 2013
所以,我编写了所有三种方法的代码,除了我不能让它返回MyDate类型 - 这是其他方法和toString等所需要的。
如何让这些方法返回MyDate类型?
答案 0 :(得分:1)
return
语句应返回当前修改对象,而不是新的MyDate对象,因此请使用this
更改return方法以返回当前对象,如下所示
public MyDate nextMonth(){
if (month<12){
month++;
setDay(1);
return this; //return current object
}
else
nextYear();
return this; //return current object
}