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直接位于它上方时,为什么找不到它呢?我发布的内容上方的所有代码均按预期工作。

最佳答案

isLeapYear是一种方法,而不是变量,因此您必须调用它:

 if (isLeapYear(year)) {


由于它需要该year参数,因此您也必须弄清楚它的来源。

09-05 04:47