【问题标题】:Nested Java methods [closed]嵌套的 Java 方法 [关闭]
【发布时间】:2013-05-10 13:31:07
【问题描述】:

在我的代码前面,我调用了该方法

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

稍后我调用该方法

public static boolean isLeapYear(int year)

我想在 isLeapYear 中调用除法。我必须重新定义分歧吗?现在我有

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;
}

}

我得到的错误是已经定义了划分,但是当我没有把整个公共静态等声明放在那里时,它想知道划分是什么。

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

【问题讨论】:

  • 方法不能嵌套在Java中。
  • 面向对象...Edit Nvm,但是只调用除法而不是重新定义它怎么样?
  • java 不允许使用嵌套方法声明stackoverflow.com/questions/2634328/…
  • 只需使用新的Class重新创建即可

标签: java methods


【解决方案1】:

您不能嵌套方法声明。但是,您可以简单地分别定义它们并相互调用。这就是函数的目的。

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.
}

【讨论】:

  • 我猜他想要return divided(year, 4) && (!divided(year, 100) || divided(year, 400))
【解决方案2】:

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

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

【讨论】:

  • 传递各自的参数是什么意思?
  • 投反对票的人能解释一下吗??我在这里错过了什么吗??
  • @PermGenError 我发现你的回答缺乏对 OP 的感觉,很明显他不知道自己在做什么,你的回答对他来说仍然很难理解。
  • @Goodwine 所以,你只是投反对票??,你似乎是新来的。它在这里不起作用。如果答案是错误的,你只会得到 d/v。
  • @PermGenError 当我悬停时,它说“这个答案没用”,这就是我的感受。
【解决方案3】:

首先你不能声明嵌套方法。

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

divide.class 是什么东西?

【讨论】:

    【解决方案4】:

    我想你只是想调用你的方法......

    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-statements 中的代码只是返回条件的结果,则可以通过直接返回条件来缩短代码

    【讨论】:

    • 不会将divides(year, 400) || !divides(year, 100) 的顺序颠倒到!divides(year, 100) || divides(year, 400) 使其更快吗?
    • @Goodwine 对。因为 ´!divides(year, 100)` 将比 divides(year, 400) 更频繁地为真,divedes 仅被调用两次的机会会更高。我会编辑它。
    • 现在你有!divides(year, 400) ;) (!)
    • sigh 纠正了这一点。谢谢。 TGIF...
    猜你喜欢
    • 2021-05-13
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    相关资源
    最近更新 更多