java - 如何正确调用公开课

标签 java

//precondition x, y non-negative
class Main {

public int gcd(int x, int y){
  if(x < y)
    return gcd(y, x);
  else if(y == 0)
    return x;
  else
    return gcd(y, x % y);
}

public static void main(String[] args) {
  //below line of code causes an error : cannot find symbol
  gcd Object = new gcd();

  }
}

我不知道如何正确调用公共(public)类。我已在评论下尝试过,但它导致找不到符号错误。

最佳答案

这里gcd不是一个类,它是一个方法,要调用一个方法,您可以使用正确的参数直接调用它们,就像在您的示例中一样,您所要做的就是从 main 调用 gcd

gcd(valueX,valueY);

要调用不在类内部的方法,您需要创建该类的对象,然后调用该函数,但在您的情况下,您是从同一个类调用它,因此不需要对象。另一件需要注意的事情是,您正在从静态方法(main)调用非静态方法(gcd),因此您需要将 gcd 声明为静态,如下所示

public static int gcd(int x, int y);

如果你喜欢在类中使用 gcd 那么你可以这样做

//GCD class
class GCD{
//class method
 public int gcd_method(int x, int y){
    if(x < y)
    return gcd(y, x);
    else if(y == 0)
    return x;
    else
    return gcd(y, x % y);
  }
}

从你的 main 方法中,你实例化了一个 GCD 类的对象来调用这样的方法

GCD gcd = new GCD();
gcd.gcd_method(valueX,valueY);

关于java - 如何正确调用公开课,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60107775/

相关文章:

java.lang.ClassCastException : trail1modified cannot be cast to java. applet.Applet

java - 为什么从我的文件中读取的最小数字总是 0? ( java )

java - 无法运行 Jasper 报告 : The system cannot find the file specified

java - 阻止 Eclipse 删除 "target"内的文件夹

Java JPanel JFrame 获取高度和宽度

Java Android 将数据发送到服务器应用程序永远不要使用 onPostExecute()

java - 我想在 Java GUI 中的表过滤器之间创建 "or"关系而不是 "and"

java - 如何将 Sprite 放在另一个更大的 Sprite 的中心?

java - JSF 2.0 使用 Flying Saucer 将 XHTML 页面转换为 PDF : java. lang.IllegalStateException

java - 在 DSpace 中隐藏集合和子集合?