有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在本例中,如何在java中返回多个值?

我有一个方法可以找到第二天,但我不知道如何返回所有3个值日、月、年。请帮帮我。感谢您的帮助。提前谢谢

public int dayInMonth(int day,int month,int year){
    //....
    return day;
}

public int theDayAfter(int day, int month, int year) {
    day++;
    int max=dayInMonth(day,month,year);
    if(day>max)
    {
        month++;
        if(month>12)
        {
            year++;
            month=1;
            day=1;
        }
    }
    return ;
}

共 (1) 个答案

  1. # 1 楼答案

    这是一个合理的怀疑,一年前,就连我也面临着类似的怀疑

    我发现从方法返回此类值的最佳方法是以对象类型返回它。在本例中,如果我返回日、月和年,那么我将创建一个类,如下所示:

    public class DateOfYear{
       public int day;
       public String month;
       public int year;
    
       public DateOfYear(int day, String month, int year){
           this.day = day;
           this.month = month;
           this.year = year;
       }
    }
    

    现在我将使用这个类DateofYear实例化它,并将值作为对象发送。因此,如果您想获得当月的日期,函数将如下所示:

    public DateOfYear dayInMonth(int day,int month,int year){
        //....
        return new DateOfYear(day,month,year);
    }
    

    调用函数可以简单地显示当前日期,如下所示:

    System.out.println("Day: "+dayInMonth(day,month,year).day);
    

    同样地,对于方法来说,DayaAfter只需更改返回类型并返回DateOfYear类型的对象

    public DateOfYear theDayAfter(int day, int month, int year) {
        day++;
        int max=dayInMonth(day,month,year);
        if(day>max)
        {
            month++;
            if(month>12)
            {
                year++;
                month=1;
                day=1;
            }
        }
        return new DateOfYear(day, month, year);
    }
    

    调用DayaAfter()的方法可以在第二天显示如下:

     System.out.println("Next Day: "+theDayAfter(day,month,year).day);
     System.out.println("Month: "+theDayAfter(day,month,year).month);
     System.out.println("Year: "+theDayAfter(day,month,year).year);