【发布时间】:2013-12-01 04:41:21
【问题描述】:
我创建了一个目录 p1,在该目录下我编写了一个 Demo.java 程序:-
package p1;
public class Demo {
public static void main(String[] args){
Protection ob1 = new Protection();
Derived ob2 = new Derived();
SamePackage ob3 = new SamePackage();
}
}
在同一个目录下,我为 Protection.java、Derived.java、SamePackage.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_pro = " + n_pro);
System.out.println("n_pub = " + n_pub);
}
}
和
package p1;
class Derived extends Protection {
Derived(){
System.out.println("derived Constructor.");
System.out.println("n = " + n);
System.out.println("n_pro = " + n_pro);
System.out.println("n_pub = " +n_pub);
}
}
和
package p1;
class SamePackage {
SamePackage(){
Protection p = new Protection();
System.out.println("Same Package Constructor");
System.out.println("n = " + p.n);
System.out.println("n_pro = " + p.n_pro);
System.out.println("n_pub = " + p.n_pub);
}
}
但是当我在 p1 文件夹中执行 javac Demo.java 时,我收到一个错误,它找不到保护、派生和 SamePackage 符号。我弄错了这里可能有什么问题? 任何线索将不胜感激。
【问题讨论】:
-
@KamleshArya ,所有类都在同一个oackage中,所以不需要导入它们..