Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
can';除非生成对象,否则不要在同一目录中使用java文件_Java - Fatal编程技术网

can';除非生成对象,否则不要在同一目录中使用java文件

can';除非生成对象,否则不要在同一目录中使用java文件,java,Java,因此,我尝试在其驱动程序EuclidDriver.java旁边使用一个文件Euclid.java。如果试图调用Euclid中的某个方法,驱动程序会给出一个错误,说明它找不到该方法。如果我改变欧几里德,使它成为一个对象,司机现在可以使用它的方法。我不明白为什么它在同一个目录中找不到这个方法,但却能用这个文件创建一个对象。我有欧几里得分类: public class Euclid { public static int gcd(int num1, int num2) { if

因此,我尝试在其驱动程序EuclidDriver.java旁边使用一个文件Euclid.java。如果试图调用Euclid中的某个方法,驱动程序会给出一个错误,说明它找不到该方法。如果我改变欧几里德,使它成为一个对象,司机现在可以使用它的方法。我不明白为什么它在同一个目录中找不到这个方法,但却能用这个文件创建一个对象。我有欧几里得分类:

public class Euclid
{
   public static int gcd(int num1, int num2)
   {
      if(num2<=num1 && (num1%num2==0))
      {
         return num2;
      }
      else if(num1<num2)
      {
         return gcd(num2,num1);
      }
      else
      {
         return gcd(num2,num1%num2);
      }
   }
}

这是您在
Euclid
中创建的静态方法。调用如下静态方法:

Euclid.gcd(18,6)

如果类驻留在另一个包中,则可能还需要导入该类。
也可以考虑静态导入。

调用该方法时必须引用Euclid类

在驱动程序类中进行以下更改:

public class EuclidDriver
{   
   public static void main(String[]args)
   {      
      int gcd = gcd(18,6);
      System.out.println(gcd);   
   }
   
}
intgcd=Euclid.gcd(18,6)

因此,课程将是:

public class EuclidDriver
{   
   public static void main(String[]args)
   {      
      int gcd = Euclid.gcd(18,6);
      System.out.println(gcd);   
   }   
}

如果你想使用另一个类的方法,你必须实例化它。如果希望使用来自另一个类的方法而不实例化它,可以将该方法设置为静态并调用ClassName.method