在java中返回自定义数据类型(类?)

时间:2015-11-13 12:00:01

标签: java methods types return

背景

我写了一个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类型?

1 个答案:

答案 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
}