Java n00b在这里。我最近一直在学习包,并认为它们在管理代码时非常有用。但是,我(经常)遇到一个问题,即无法将一个类从一个包继承到另一个包的类中。
以下是在A.java
中创建的Package1
代码: -
package Package1;
public class A
{
private int a;
protected void setA(int a)
{
this.a = a;
}
public int getA()
{
return a;
}
public String toString()
{
return String.format("a = "+a);
}
}
正在继承的类A1.java
位于Package2
。其代码如下: -
package Package2;
import Package1.A;
public class A1 extends A // I even tried `Package1.A` but didn't have any change
{
private int a1;
public void setA1(int a1)
{
this.a1 = a1;
}
public int getA1()
{
return a1;
}
public String toString()
{
return String.format("a1 = "+a1);
}
}
我得到的错误是: -
A1.java:2: error: package Package1 does not exist
import Package1.A;
^
A1.java:3: error: cannot find symbol
public class A1 extends A
^
symbol: class A
OR
A1.java:2: error: package Package1 does not exist
import Package1.A;
^
A1.java:3: error: package Package1 does not exist
public class A1 extends Package1.A
我不明白如何解决这个问题。你能帮忙吗?
答案 0 :(得分:1)
你的-cp参数有问题:编译器找不到你的A类
在你理解了类路径的原始基础知识(以及一些内存设置)之后,你肯定应该使用java编辑器来启动,你将花费大量时间手动编译并理解不带给你的编译器任何技能。
稍后你可能会使用一些更复杂的编译工具(并且比你在进行“持续集成”时编译的要多得多):你可以开始关注Gradle和Maven(Gradle是新的做法,但很多公司仍然使用Maven,所以如果你认为你会找工作学习maven,如果你想要有效,请学习Gradle)
Eclipse是免费的Java编辑器,所以我推荐你:http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/keplersr1
p.s:包也应该有小写名称,避免在你的名字中使用数字