我得到了一个如下所示的驱动程序:

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构造函数使用100至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] + " ");
    }
}


}

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

最佳答案

这是因为您有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);
            .
            .
            .
}

关于java - 如何解决这种“找不到符号”的情况?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35224408/

10-11 09:23