我有2个包p1和p2,p2中的一些类有调用p1中类的全局变量,然后我在p2中用javac *.java编译,但是提示那些p1包中设的变量没有找到,是怎么回事?
如下:
OtherPackage.java:7: 软件包 p1 不存在
p1.Protection p=new p1.Protection();
^
OtherPackage.java:18: 找不到符号
符号: 变量 n_pub
位置: 类 p2.OtherPackage
System.out.println("n_pub= "+n_pub);
^
Protection2.java:15: 找不到符号
符号: 变量 n_pro
位置: 类 p2.Protection2
System.out.println("n_pro= "+n_pro);
^
Protection2.java:16: 找不到符号
符号: 变量 n_pub
位置: 类 p2.Protection2
System.out.println("n_pub= "+n_pub);
如下:
OtherPackage.java:7: 软件包 p1 不存在
p1.Protection p=new p1.Protection();
^
OtherPackage.java:18: 找不到符号
符号: 变量 n_pub
位置: 类 p2.OtherPackage
System.out.println("n_pub= "+n_pub);
^
Protection2.java:15: 找不到符号
符号: 变量 n_pro
位置: 类 p2.Protection2
System.out.println("n_pro= "+n_pro);
^
Protection2.java:16: 找不到符号
符号: 变量 n_pub
位置: 类 p2.Protection2
System.out.println("n_pub= "+n_pub);
Protection.java文件
package p1;public class Protection
{
int n=1;
private int n_pri=2;
protected int n_pro=3;
public int n_pub=4;
public Protection()
{
System.out.println("base constructor");
System.out.println("n= "+n);
System.out.println("n_pri= "+n_pri);
System.out.println("n+pro= "+n_pro);
System.out.println("n_pub= "+n_pub);
}
}
Portection2.java文件
package p2;class Protection2 extends p1.Portection
{
Protection2()
{
System.out.println("derived other package constructor");
// class or package only
// System.out.println("n= "+n);
// class only
// System.out.println("n_pri= "+n_pri);
System.out.println("n_pro= "+n_pro);
System.out.println("n_pub= "+n_pub);
}
}
OtherPackage.java文件
package p2;class OtherPackage
{
OtherPackage()
{
p1.Protection p=new p1.Protection();
System.out.println("other package constructor");
// class or package only
// System.out.println("n= "+n);
// class only
// System.out.println("n_pri= "+n_pri);
// class, subclass or package only
// System.out.println("n_pro= "+n_pro);
System.out.println("n_pub= "+n_pub);
}
}
Demo.java文件
// Demo Package p2.
package p2;
// Instantiate the various classes in p2.
public class Demo
{
public static void main(String args[])
{
Protection2 ob1=new Protection2();
OtherPackage ob2=new OtherPackage();
}
}