我在编写大学讲座的代码时遇到了问题。
有文件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中也遇到了这个错误。
答案 0 :(得分:2)
包'sort'下的Test类。您的类Rectangle也应该在包'sort'
下您需要将这些类放在名为map(ls(), ~ get(dim(.)))
的文件夹中。然后进入一级,然后从那里编译你的类。
sorting
答案 1 :(得分:1)
来自您的来源目录:
运行javac Test.java Rectangle.java
或仅javac *.java
您的课程需要彼此了解。 Rectangle
与外部类没有依赖关系,所以它自己编译好。但Test
取决于Rectangle
,但不了解该类,因此将它们编译在一起将解决此问题。