import java.util.Scanner;
public class GregorianYear
{
private int year;
public GregorianYear(int a)
{
year = a;
}
public void SetYear()
{
System.out.println("The year is: ");
Scanner kbd = new Scanner(System.in);
year = kbd.nextInt();
}
public int getYear()
{
return year;
}
public boolean isLeapYear()
{
if (year > 1852)
{
if (year % 100 == 0)
{
if (year % 400 == 0)
{
return false;
}
else
{
return true;
}
}
}
//Compiler says I need a return statement here.
}
}
我正在为类编程一个(应该是)简单程序,并且当我没有任何东西时,它说我需要一个return语句。我假设我只能返回一个布尔语句,所以我输入return isLeapYear();.当我这样做时,我的测试方法(带有公共静态void main的另一个文件)运行,并在我输入return语句的那一行导致一个StackOverflow错误。我究竟做错了什么?关于退货声明的问题
使用代码按钮。 – 2009-10-25 10:23:18
选择更具可读性的缩进样式(http://en.wikipedia.org/wiki/Indent_style)。另外,请张贴测试代码;你发布的代码没有任何会导致堆栈溢出的东西。为什么歧视1852年以前的几年? – outis 2009-10-25 10:29:01
注意:方法名称以小写字母开头。 – 2009-10-25 10:29:17