在同一个包和目录中找不到符号
我有两个课程,包括课程和课程。 它们都在同一个包和同一目录中。
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(); }