2011-04-18 63 views
1

我们在一个包中的java中创建一个类。示例包问题

package p1; 
class protection{ 
int a=2; 
} 

然后我们保存这个。与protection.java和编译这个类很容易编译 - 没有错误。然后,我们让其他类派生相同装箱率和扩展类保护和保存这个与derived.java例如

package p1; 
class derived extends protection{ 
derived(){ 
System.out.println(a); 
} 
} 

但是当我们编译这个自带的错误:

"class protectiion not found"

,而不是acccess整数一个; 但是在书中写入“同一包中的子类访问成员”。但这不是编译和不访问类。我们如何做到这一点。请如果你知道然后帮我..

+0

你的两个班没有错。请再次检查是否存在拼写错误(在错误消息中,例如,您错误的“保护”,虽然类名称是“保护”)。 – Howard 2011-04-18 17:44:28

+1

适合我。你是如何编译它的?特别是:输出p1.protection去了哪里?请提供详细,完整的信息。感谢 – 2011-04-18 17:46:30

+0

还是保护类名称以大写字母开头? – Reddy 2011-04-18 17:47:51

回答

2

如果你编译时已经在p1中,在p1/p1 /中搜索另一个类,因为第一个p1是当前目录。

javac -cp .. derived.java 

应该这样做。

一个更好,更清晰的思路是,以

cd .. 
javac p1/derived.java 

然后“导出”和“保护”住在附近,和平一起。