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