1

我只得到了一个用于家庭作业的 .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

4 回答 4

1

如果sortA是给定类的静态方法,则必须使用类名对其进行限定:

System.out.println(GivenClass.sortA(a1));
于 2013-02-23T08:35:34.300 回答
0

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

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

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

    System.out.println(ThatClassName.sortA(a1));        
于 2013-02-23T08:35:51.943 回答
0

如何在没有来自另一个类的对象的情况下访问方法...如果您尝试对所有方法进行排序,那么您的 .class 引用要调用...

于 2013-02-23T08:39:48.520 回答
0

您需要首先导入特定的类..打开 .class 文件在顶部,您会注意到写了一些包名..所以记下它..现在将您的类文件放在 eclipse.. 并导入包在你的 Hw.java.. 确保你这样做.. 说包名是 p1 然后这样写import p1.*以确保你有所有的类都存在于其中..
现在 eclipse 和其他 IDE 有智能感知所以你可以利用它的..我的意思是制作该类的一个对象并使用该对象按期(点。)来了解该类提供的带有签名的方法..并使用它..
我注意到一件事,您还没有创建对象来访问排序方法。你需要先这样做..如果方法是静态的..然后做静态导入所以你不必指定类名..像这样import static p1.*

希望这可以帮助!!

于 2013-02-23T08:43:03.997 回答