包裹问题

时间:2011-04-18 17:37:56

标签: java class package javac

我们在一个包中创建一个java类。例子

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

然后我们保存这个。用protection.java编译这个类很容易编译 - 没有错误。然后我们在同一个packge中创建其他类并扩展类保护并使用derived.java示例保存它

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

但是当我们编译时出现错误:

  

“没有找到班级保护”

并且不接受整数a; 但在书中写“同一包中的子类访问成员”。但这不是编译而不是访问该类。我们如何做到这一点。如果你知道的话请帮助我..

1 个答案:

答案 0 :(得分:2)

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

javac -cp .. derived.java

应该这样做。

更好,更明确的想法是

cd ..
javac p1/derived.java

然后'派生'和'保护'一起生活紧密和平和。