在java中找不到名称错误

时间:2017-11-30 14:29:09

标签: java

我的第一堂课。(名为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

1 个答案:

答案 0 :(得分:0)

看起来你没有在Test类中导入Student类,这两个类Test.java和Student.java在不同的包中。

这一行最后需要一个分号

this.subject = subject;

之后,在没有jar导入的情况下编译正常。

是的,另一个答案是正确的,你需要像这样

如果您从导入

中删除了acm,请

javac -cp . Person.java Student.java Test.java

他们正在编译好。