嵌套的Java方法

时间:2013-05-10 13:31:08

标签: java methods

在我的代码中,我先调用方法

public static boolean divides(int num, int denom)
{
    if (num%denom==0)
       return true;
    else return false; 
}

后来我正在调用方法

public static boolean isLeapYear(int year)

我想在isLeapYear中调用divides。我是否必须重新定义分歧?现在我有

public static boolean isLeapYear(int year)
{
public static boolean divides(int num, int denom)
{
   if (divides.class == true && (year%400 ==0) || ((year%4==0) 
       && (year%100 !=0)));
       return true;
       else return false;
}

}

我得到了已经定义了divides的错误,但是当我没有将整个公共静态等语句放在那里时,它会想到什么是分歧。

我也遇到了许多其他错误(例如我在嵌套后无法找到年份的类型),但这不是主要错误。

4 个答案:

答案 0 :(得分:5)

您无法嵌套方法声明。但是,您可以单独定义它们并从另一个中调用它们。这就是功能的目的。

public static boolean divides(int num, int denom)
{
    if (num%denom==0)
       return true;
    else return false; 
}

public static boolean isLeapYear(int year)
{
    return divided(x, y);  // not sure what you are trying to divide, but fill in x and y.
}

答案 1 :(得分:1)

,您不能在java中使用嵌套方法。你可以做的是从divide()方法调用isLeapYear(),并将相应的参数传递给它。

public static boolean isLeapYear(int year)
{
divides(1, 2);
return result;
}

答案 2 :(得分:1)

首先,您无法声明嵌套方法。

无论如何,您不需要再次声明除法。如果它被定义为static,请尝试将其称为ContainingClass.divides(x,y);

divide.class是什么东西?

答案 3 :(得分:1)

我想你只想打电话给你的方法......

public static boolean divides(int num, int denom)
{
    return (num % denom == 0); 
}

public static boolean isLeapYear(int year)
{
   return (divides(year, 4) && (!divides(year, 100) || divides(year, 400));
}

如果if-else语句中的代码只返回条件的结果,则可以通过直接返回条件来缩短代码