代码源自《java核心技术一卷》

抽象表示如下:

ManagerTest.java

package inheritance;

...

public class ManagerTest

{

}

存放于:inheritance/ManagerTest.java

 

 

Manager.java

package inheritance;

...

public class Manager

{

}

存放于:inheritance/Manager.java

 

 

Employee.java

package inheritance;

...

public class Employee

{

}

存放于:inheritance/Employee.java

 

 好了 现在编译一下 

 

javac *.java

找不到符号 

 

什么意思呢?

就是说  这三个类放在一个文件夹inheritance里面

一个挨着一个

可是编译的时候就是看不到对方 

 

那怎么解决好?

方案一:

 

三个类仍旧一起扔在inheritance文件夹里面   

把三个类开头的package inheritance注释掉   例如://package inheritance;

再次编译 javac *.java 

 

方案二:

 

将需要运行main()函数的类提到文件夹外面

这里呢就是ManagerTest.java

 

以我的实验为例:

 

我电脑的路径是

                                                      

 f:\java1\fivecptr\fivecptrone\inheritance(三个类在这)

                                                      

我呢把ManagerTest.java放到了java1这个文件夹里面

 

f:\java1\fivecptr\fivecptrone\inheritance(剩下2个类)

.......↑......................

ManagerTest.java

 

然后修改代码如下

 

inheritance里面两个类的package 改为:

package fivecptr.fivecptrone.inheritance;    

............__________↑_____________

f:\java1\fivecptr\fivecptrone\inheritance

 

就是把ManagerTest.java类后面的路径全部抄上去  当然"\"换成"." 

TIPS:路径名不能有奇怪的符号例如:下划线_  ,  阿拉伯数字0,1...  (所以有蛋疼的fivecptr - -!)

 

下一步:

java1里面的ManagerTest.java 里面

1) 注释掉package  //package inheritance;

2)    开头添加   import fivecptr.fivecptrone.inheritance.*;  (和上面一样,末尾添加通识符*)

 

接下来 设置类路径

(win7下)

 

计算机-(左侧)计算机右键-属性-高级系统设置-环境变量-系统变量-新建

 

名字:CLASSPATH;

路径:f:java1; .;  (就是把ManagerTest.java那个类所在的文件夹java1之前的-包括java1-的路径写上去,  后面也可以再加个  .; (句号+分号, 如果方案一不行时可能是这里的问题,它表示在当前目录搜索类)

 

确定 

 

重新开启console  (黑框框- -!)

 

cd到ManagerTest.java所在文件路径下 

运行:

javac ManagerTest.java