无法在Java代码中引用类

时间:2018-04-17 12:58:29

标签: java class path

我在编写大学讲座的代码时遇到了问题。

有文件Test。给出java并且可能不会更改:

package sorting;
import java.util.*;

class Test {

static final int BOUND_RANDOM = 99;

public static void main(String[] args) {
    System.out.print("n = ");
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    Random random = new Random(123);
    Rectangle[] rectangles = new Rectangle[n];
    for (int i = 0; i < rectangles.length; ++i) {
        // 1. Parameter = x-Koordinate linke untere Ecke
        // 2. Parameter = y-Koordinate linke untere Ecke
        // 3. Parameter = Breite
        // 4. Parameter = Hoehe
        rectangles[i] = new Rectangle(random.nextInt( BOUND_RANDOM),
                                      random.nextInt( BOUND_RANDOM),
                                      random.nextInt( BOUND_RANDOM) + 1,
                                      random.nextInt( BOUND_RANDOM) + 1);
    }
    System.out.print("Vor Sortieren:");
    System.out.println(Arrays.toString(rectangles));
    // long start = System.currentTimeMillis();

    SortingAlgos.selectionSort(rectangles);
    // SortingAlgos.insertionSort(rectangles);
    // Arrays.sort(rectangles);

    // long end = System.currentTimeMillis();
    //System.out.println("Benoetigte Zeit: " + (end - start) + " Millisekunden");
    System.out.println("Nach Sortieren:");
    System.out.println(Arrays.toString(rectangles));
}

}

接下来我写了一个文件,我在其中定义了类Rectangle,保存在同一个文件夹中。我根据Test.java中的调用创建了一个构造函数,并将该文件保存并编译在与Test.java相同的文件夹中:

package sorting;
public class Rectangle{

int x,y,width, height;


public Rectangle(int x, int y, int width, int height){
this.x=x;
this.y=y;
this.width=width;
this.height=height;
}


public String toString(){
return "x="+this.x;
}


}

任何人都可以给我一个快速拍摄,我哪里出错?

PS:问题是我在编译Test.java时遇到错误,其中类Rectangle是一个未找到的符号。我在Linux和Win 10中也遇到了这个错误。

2 个答案:

答案 0 :(得分:2)

包'sort'下的Test类。您的类Rectangle也应该在包'sort'

您需要将这些类放在名为map(ls(), ~ get(dim(.))) 的文件夹中。然后进入一级,然后从那里编译你的类。

sorting

答案 1 :(得分:1)

来自您的来源目录:

运行javac Test.java Rectangle.java或仅javac *.java

您的课程需要彼此了解。 Rectangle与外部类没有依赖关系,所以它自己编译好。但Test取决于Rectangle,但不了解该类,因此将它们编译在一起将解决此问题。