即使类文件位于同一目录中,Java文件也无法访问方法

时间:2013-02-23 08:24:10

标签: java

我只获得了一个用于家庭作业的.class文件,需要编写一个访问其方法的程序。好吧,我有.class文件在同一目录中,但我无法访问其方法,所以我的程序将无法编译!我试过JGrasp和Eclipse。两者都“找不到符号”(方法名称)。

我绝对肯定我正在使用正确的方法名称。为什么不工作?

这是我在Hw.java中的代码

public class Hw {

    public static void main(String[] args) 
    {
     int[] a1 = {1, 2, 3, 4, 5};
        int[] a2 = {5, 4, 3, 2, 1};
        int[] a3 = {1};
        int[] a4 = {2, 5, 3, 1, 4};
        int[] a5 = {1, 2, 1};

        System.out.println(sortA(a1));        
        System.out.println(sortA(a2));
        System.out.println(sortA(a3));
        System.out.println(sortA(a4));
        System.out.println(sortA(a5));        
  }
}

我在JGrasp中遇到的错误:

Hw.java:11:错误:找不到符号             的System.out.println(SORTA(A1));
                               ^   符号:方法sortA(int [])   位置:Hw级

4 个答案:

答案 0 :(得分:1)

如果sortA是您所在班级的静态方法,则必须使用班级名称对其进行限定:

System.out.println(GivenClass.sortA(a1));

答案 1 :(得分:0)

你必须创建该类的实例并调用sort方法。

    System.out.println(new ThatClass().sortA(a1));        

如果sortA(a1)是一个静态方法,你应该在类Name上调用它。

    System.out.println(ThatClassName.sortA(a1));        

答案 2 :(得分:0)

如何使用另一个类中的out对象访问方法...如果您尝试使用所有排序方法,那么您的.class引用将调用...

答案 3 :(得分:0)

你需要先导入特定的类..打开.class文件顶部你会注意到有一些包名写的..所以请注意它..现在把你的类文件放在你的日食中..并在你的Hw.java中导入该包..确保你这样做..说包名是p1然后以这种方式写import p1.*以确保你有所有课程..
现在eclipse和其他IDE有智能感知,所以你可以利用它..我的意思是创建该类的对象并使用该对象按期(点。)来了解该类提供的方法与签名..并使用它..
有一点我注意到你没有创建对象来访问sort方法。你需要先做..然后如果方法是静态的..然后进行静态导入,这样你就不必指定类名了......像这样import static p1.*

希望这会有所帮助!!