Java 在同一个包中找不到符号
我有两个公共班,员工和工资在同一个包里。Employee是父类,Salary是子类。 当我使用-d标志编译Employee类时,代码编译得很好,并且根据包名生成适当的目录结构。 但是,当我尝试编译Salary类时,会出现以下错误:Java 在同一个包中找不到符号,java,compilation,package,symbols,Java,Compilation,Package,Symbols,我有两个公共班,员工和工资在同一个包里。Employee是父类,Salary是子类。 当我使用-d标志编译Employee类时,代码编译得很好,并且根据包名生成适当的目录结构。 但是,当我尝试编译Salary类时,会出现以下错误: Salary.java:2: cannot find symbol symbol: class Employee public class Salary extends Employee{ 1 error 这是我的密码: Employee.java Salary.
Salary.java:2: cannot find symbol
symbol: class Employee
public class Salary extends Employee{
1 error
这是我的密码:
Employee.java
Salary.java
如果我从这两个文件中删除了包声明,那么它将编译而没有任何错误。如果您没有使用任何IDE,请在编译Salary时使用-cp选项来指定在何处查找Employee类文件。您的私有int-Salary实际上应该是小写的s,Salary@mjr:我不认为这会引起任何问题。@Pranethnilangapeiris这与提问者的问题无关,但使用大写字母s肯定是个坏主意,因为它非常令人困惑。我是java新手,目前还不太了解约定……我很快就会开始学习……谢谢你提供的信息。但我不认为这会造成任何问题。我没有发现我为什么要尝试这个的错误。你确定你的文件在正确的目录/文件夹中,并且你在编译时在正确的目录中吗?我需要使用-cp选项指定员工类文件的整个路径还是直接到测试目录???指定员工类文件所在的文件夹路径。它起作用了!!!!我使用了javac-d test-cp/test Salary.java谢谢您的帮助:
package com.alok.Manage;
public class Employee{
private int eno;
private String name;
Employee()
{
this(0,"");
}
Employee(int n,String nm)
{
this.eno=n;
this.name=nm;
}
public int getEno()
{
return this.eno;
}
public String getName()
{
return this.name;
}
}
package com.alok.Manage;
public class Salary extends Employee{
private int Salary;
public int getSal()
{
return this.Salary;
}
public void setsal(int s)
{
this.Salary=s;
}
}