在同一个包和目录中找不到符号

我有两个课程,包括课程和课程。 它们都在同一个包和同一目录中。

Offering.java:

package assignment02; public class Offering implements Comparable { private Course course; private int CRN; private int semester; public Offering(Course course, int CRN, int semester) { this.course = course; this.CRN = CRN; this.semester = semester; } public int getNumCredits() { return course.getNumCredits; } public int getCRN() { return CRN; } public int getSemester() { return semester; } public int compareTo(Offering other) { if(other == null) return - 1; return semester - other.semester; } } 

Course.java:

 package assignment02; public class Course { private String name; private String rubric; private String number; private int numCredits; public Course(String name, String rubric, String number, int numCredits) { this.name = name; this.rubric = rubric; this.number = number; this.numCredits = numCredits; } public String getName() { return name; } public String getRubric() { return rubric; } public String getNumber() { return number; } public int getNumCredits() { return numCredits; } } 

当我尝试编译产品时,我得到错误:

 D:\CS 140\assignment02>javac Offering.java Offering.java:4: error: cannot find symbol private Course course; ^ symbol: class Course location: class Offering 

 Offering.java:8: error: cannot find symbol public Offering(Course course, int CRN, int semester) { ^ symbol: class Course location: class OfferingOffering.java:8: error: cannot find symbol 

我知道错误意味着编译器无法对“课程”做任何事情,但我不知道为什么。 我也知道它最终会变得非常明显,但我似乎无法弄明白。 任何帮助将非常感激。

将目录更改为assignment02的父目录。 然后你应该可以使用

 javac assignment02\Course.java assignment02\Offering.java 

要么

 javac assignment02\Course.java javac assignment02\Offering.java 

甚至

 javac assignment02\*.java 

编译器正在寻找当前目录中的assignment02包中的Course类(所以当你在assignment02目录中时,它实际上是在寻找assignment02/assignment02 ,这显然是不正确的)

虽然这会纠正你当前的问题,然后你会得到……

 assignment02\Offering.java:15: cannot find symbol symbol : variable getNumCredits location: class assignment02.Course return course.getNumCredits; ^ 1 error 

这需要纠正

你需要编译Course.java first-Offering.java依赖于它,因为你引用它。 也,

 public int getNumCredits() { return course.getNumCredits; } 

应该

 public int getNumCredits() { return course.getNumCredits(); }