在本例中,如何在java中返回多个值?
我有一个方法可以找到第二天,但我不知道如何返回所有3个值日、月、年。请帮助我。感谢您的帮助,谢谢在本例中,如何在java中返回多个值?,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>
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 ;
}
这是一个合理的怀疑,一年前就连我也面临着类似的怀疑 我发现从方法返回此类值的最佳方法是以对象类型返回它。在本例中,如果我返回日、月和年,那么我将创建一个类,如下所示:
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;
}
}
public DateOfYear dayInMonth(int day,int month,int year){
//....
return new DateOfYear(day,month,year);
}
System.out.println("Day: "+dayInMonth(day,month,year).day);
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);
现在我将使用这个类DateofYear实例化它并将值作为对象发送。因此,如果您想获取月份的日期,函数将如下所示:
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;
}
}
public DateOfYear dayInMonth(int day,int month,int year){
//....
return new DateOfYear(day,month,year);
}
System.out.println("Day: "+dayInMonth(day,month,year).day);
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);
调用函数可以简单地显示当前日期,如下所示:
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;
}
}
public DateOfYear dayInMonth(int day,int month,int year){
//....
return new DateOfYear(day,month,year);
}
System.out.println("Day: "+dayInMonth(day,month,year).day);
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);
类似地,对于方法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()的方法可以显示第二天,如下所示:
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;
}
}
public DateOfYear dayInMonth(int day,int month,int year){
//....
return new DateOfYear(day,month,year);
}
System.out.println("Day: "+dayInMonth(day,month,year).day);
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);
您可以返回一个
int[]
、一个字符串
或一个日期
。你想用这个做什么?因为它看起来像是要重新实现Calendar
。您不能从该方法返回三个int
值,因为返回类型只是int
。返回一个int
或更改返回类型。可能是一个自定义类,它本身包含三个int
s?(在本例中,这也是一个很好的方法参数。)是否将其作为字符串返回?或者一个int[3]
当每个索引都是某个值时,不要返回字符串或int[]
。如果这三个值在语义上形成一个单一的结构,那么就让它们成为一个结构。(Aclass
)不是字符串,不是。永远不要将不同的值编码到一个字符串中,然后将其解析出来。非常感谢。它看起来像C/C++中的struct类型,不是吗?当然!即使在这两种语言中,我们也可以通过发送实例化结构来发送多个值。这是一个非常有用的诀窍:从一个函数发送多个值。感谢您将我的回答标记为答案:)