public static boolean isLeapYear(int year)
{ if ((year % 4) != 0)
return false;
else if ((year % 400) == 0)
return true;
else if ((year % 100) == 0)
return false;
else
return true;
}
public int getDaysInThisMonth()
{ if (month == APRIL || month == JUNE || month == SEPTEMBER || month == NOVEMBER)
return 30;
else if (month == FEBRUARY || isLeapYear == false)
return 28;
if (isLeapYear == true)
return 29;
else return 31;
}
SEPTEMBER-DECEMBER全部定义为常数1-12,按预期工作。我的问题是我在尝试编译时收到错误代码。
symbol: variable isLeapYear
location: class Date
Date.java:68: error: cannot find symbol
if (isLeapYear == true)
^
symbol: variable isLeapYear
location: class Date
2 errors
那么为什么它直接位于它之上时才能找到isLeapYear?我发布的内容之上的所有代码都按预期工作。
答案 0 :(得分:1)
isLeapYear
是一个方法,而不是变量,所以你必须调用它:
if (isLeapYear(year)) {
由于它需要year
参数,你必须弄清楚它的来源。
答案 1 :(得分:0)
因为这个
if (isLeapYear == true)
缺少参数(并且您不需要测试boolean
是否等于true
),
if (isLeapYear(year)) // <-- is a leap year
或
if (! isLeapYear(year)) // <-- not a leap year
其中year
是传递方法调用的变量或整数文字。