如何解决这个“无法找到符号”的实例?

时间:2016-02-05 12:35:05

标签: java arrays

我获得了一个类似于以下内容的驱动程序:

public class LabTest_Driver
{
    public static void main (String[] args)
    {
        int[] list = new int[20];
        System.out.println();
        makeList (list);
        System.out.print("\n" + "The original (unsorted) list is:" + "\n");
        showArray(list);
                .
                .
                .
    }
}

makeList构造函数假设使用20和199(含)之间的20个不同的非重复数字来生成列表长度的数组

到目前为止,这是我的班级:

import java.util.Scanner;
import java.util.Random;

public class LabTest
{
     private static int[] list;

public void makeList(int[] list)
{
    Random ran = new Random();
    this.list = list;
    int n = list.length;
    for (int element : list)
    {
        int w = ran.nextInt(100) + 99;
        list[element] = w;
        w = 0;
    }
}

public void showArray(int[] b)
{
    for (int element : list)
    {
        System.out.print(list[element] + " ");
    }
}

}

当我按下编译时,会出现一条错误消息“无法找到符号 - 方法makeList(int [])”,但是我没有正确地构造该构造函数。如果有人能澄清这一点,并帮助我解决我的编程问题,这将是惊人的。

1 个答案:

答案 0 :(得分:1)

这是因为Lab_DriverLabTest有两个不同的类。您必须创建类LabTest的新对象,然后在该对象上调用您的方法,即makeList()showList()。或者,如果这两种方法都是static,您可以通过在LabTest前添加前缀来直接调用它们。

以下是更正后的代码段:

public static void main (String[] args)
{
    int[] list = new int[20];
    System.out.println();
    LabTest labTest = new LabTest();
    labTest.makeList(list);
    System.out.print("\n" + "The original (unsorted) list is:" + "\n");
    labTest.showArray(list);
            .
            .
            .
}

或者,如果您制作方法static

,则可以执行此操作
public static void main (String[] args)
{
    int[] list = new int[20];
    System.out.println();
    LabTest.makeList(list);
    System.out.print("\n" + "The original (unsorted) list is:" + "\n");
    LabTest.showArray(list);
            .
            .
            .
}