我的第一堂课。(名为Person.java )
public class Person {
// Instance variables
private String name;
private String address;
// Constructor
public Person(String name, String address) {
this.name = name;
this.address = address;
}
// Getters
public String getName() {
return this.name;
}
public String getAddress() {
return this.address;
}
public String toString() {
return this.name + "(" + this.address + ")";
}
}
我的第二堂课。(名为Student.java )
public class Student extends Person {
// Instance variables
private String subject;
// Constructor
public Student(String name, String adress, String subject){
super(name, adress);
this.subject = subject
}
// getters
public String getSubject(){
return this.subject ;
}
}
我的类使用这两个类。(run方法就像主要的那样)
import acm.program.*;
public class Test extends Program{
public void run() {
Student obj1 = new Student("Kwnstantinos", "Liakataiwn", "math");
}
}
我在cmd中编写以下代码来编译它但是我在编译时遇到找不到符号错误。
javac -cp acm.jar Person.java Student.java Test.java
我试图创建一个Person的类对象,但是当我尝试创建一个Student的类对象时,我得到了这个错误。为什么会这样。
C:\Users\Kwnstantinos\Desktop\JAVA>javac -cp acm.jar Person.java Student.java Test.java
Test.java:6: error: cannot find symbol
Student obj1 = new Student("Kwnstantinos", "Liakataiwn", "math");
^
symbol: class Student
location: class Test
Test.java:6: error: cannot find symbol
Student obj1 = new Student("Kwnstantinos", "Liakataiwn", "math");
^
symbol: class Student
location: class Test
2 errors
答案 0 :(得分:0)
看起来你没有在Test类中导入Student类,这两个类Test.java和Student.java在不同的包中。
这一行最后需要一个分号
this.subject = subject;
之后,在没有jar导入的情况下编译正常。
是的,另一个答案是正确的,你需要像这样
如果您从导入中删除了acm,请 javac -cp . Person.java Student.java Test.java
他们正在编译好。