我第一次伸出援手来解决问题,不确定是什么原因引起的。我有我编写的这两个类,作业要求我做一个测试驱动程序来证明这些类有效。

学生类:

public class Student{
    private Course[] courseList;
    private static int numCourses;
    private final int maxCourses;

public Student(int max){
    maxCourses = max;
    courseList = new Course[numCourses];
    numCourses = 0;
}
// part 1, done
public boolean addCourse(Course newClass){
    boolean success = false;

for(int i=0; i<=maxCourses; i++){

    if(i == numCourses){
    courseList[i] = newClass;
    success = true;
    numCourses++;
    }
}
return success;
}
// part 2, done
public boolean dropCourse(Course oldClass){
    boolean success = false;

for(int i=0; i<=courseList.length; i++){
    if (courseList[i] == oldClass){
        courseList[i] = null;
        numCourses--;
        success = true;
    }
}
return success;
}
// part 3, done.
    public int getNumCourses(){
    return numCourses;
    }
//part 4, done
    public boolean isFullTime(){
        boolean success = false;
        if (numCourses >= 3){
            success = true;
        }
        return success;
    }
// part 5, done
    public String getClassList(){
        String list = "";

    for(int i=0;i<=numCourses; i++){
        list = courseList[i].getID() + "\t" + courseList[i].getName() + "\n";

    }
    return list;
    }
}

和类(class):
public class Course{
    private String name;
    private int id;
    private static int nextID = 200000;

    public Course(String nameIn)
    {
    name = nameIn;
    id = nextID;
    nextID++;
    }
public String getName(){
return name;
}
public int getID(){
return id;
}
}

由于某种原因,如果我将一个测试驱动程序简化为:
public class tester{

public static void main(String[] args){
    Course one = new Course(Java);
}
}

我的参数出现错误,提示找不到符号
javac tester.java
tester.java:6: error: cannot find symbol
        one = new Course(name);
                         ^
  symbol:   variable name
  location: class tester
1 error

我有一个更长的测试驱动程序,但是它没有超过前几行,因为这是相同的错误,只是相同错误中的几个。

谢谢你的时间。
编辑:我误将Student类放入了两次,在我的简短测试驱动程序中,唯一使用的类是Course类。

最佳答案

问题在于,由于Java周围没有引号,因此编译器将其用作变量名。由于未定义,因此编译器无法找到它。使用Course one = new Course("Java");

10-08 10:51